RFR: 6681958: Maximization state of JInternalFrames is corrupted by WindowsDesktopManager

Tejesh R tr at openjdk.org
Fri Dec 12 07:52:57 UTC 2025


On Wed, 26 Nov 2025 06:57:44 GMT, Prasanta Sadhukhan <psadhukhan 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 ?

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/28502#discussion_r2613263461


More information about the client-libs-dev mailing list