RFR: 6681958: Maximization state of JInternalFrames is corrupted by WindowsDesktopManager
Prasanta Sadhukhan
psadhukhan at openjdk.org
Fri Dec 12 07:56:51 UTC 2025
On Fri, 12 Dec 2025 07:49:49 GMT, Tejesh R <tr at openjdk.org> wrote:
>> Issue is if one internal frame is open and maximized and another internal frame is created which is initialized with `setMaximum(true)` then after opening the second internal frame the new internal frame is opened as non-maximized
>>
>> The fix makes sure the 2nd internal frame remains maximised if it is set with maximized attrbute, that is
>> If the current frame is maximized, transfer that attribute to the frame being activated.
>> which is also mentioned in this comment
>> https://github.com/openjdk/jdk/blob/46ee8d550e42f756dd04fa67ed549c93b632df77/src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsDesktopManager.java#L70-L71
>>
>> This code seems to be added for [JDK-5036083](https://bugs.openjdk.org/browse/JDK-5036083) which expects
>> When a frame is maximized and then minimized, the next frame should NOT be maximized.
>>
>> It still honours that fix as the test mentioned in JDK-5036083 works as expected as mentioned above along with fixing the present issue..
>
> src/java.desktop/windows/classes/com/sun/java/swing/plaf/windows/WindowsDesktopManager.java line 88:
>
>> 86: // else remain non-maximised
>> 87: if (f.isIcon()) {
>> 88: f.setIcon(false);
>
> Before the fix, setIcon was set to `false` if frame is maximized, now its set to `false` if frame is not maximized. Won't this cause any issue ?
In the else-block which is basically f.isMaximum() case, so frame is maximised and uniconified..its the same before the fix too..
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28502#discussion_r2613274052
More information about the client-libs-dev
mailing list