<AWT Dev> [9] Review request for 8032078: CPlatformWindow.setWindowState throws RuntimeException, if windowState=ICONIFIED|MAXIMIZED_BOTH
Petr Pchelko
petr.pchelko at oracle.com
Tue Jan 21 04:26:39 PST 2014
Hello, Anton.
Are we sure that the behavior of ICONIFIED | MAXIMIZED_BOTH should be the same as just ICONIFIED?
What does this combination of flags do on other platforms?
I would expect that if the frame is not maximized, this combination would iconify it, but when you deiconify the frame
should go to maximized state. However, I’m quite sure you can’t do it like this on Mac OS X, because we use the native
zoom mechanism for maximization and do not have enough control over it. So, in my opinion this should be fixed by
making Frame.isFrameStateSupported return false for this combination. What do you think?
With best regards. Petr.
21 янв. 2014 г., в 3:27 после полудня, Anton Litvinov <anton.litvinov at oracle.com> написал(а):
> Hello,
>
> Could you please review the following fix for the bug.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8032078
> Webrev: http://cr.openjdk.java.net/~alitvinov/8032078/jdk9/webrev.00
>
> The bug consists in undocumented throwing of "RuntimeException" from the method "Frame.setExtendedState" for the compound state "ICONIFIED | MAXIMIZED_BOTH" that is supported according to a result of "Frame.isFrameStateSupported" method call on OS X.
>
> The solution adds handling of the mask "ICONIFIED | MAXIMIZED_BOTH" to "switch" block of the method "sun.lwawt.macosx.CPlatformWindow.setWindowState" which duplicates existing handling of the state "ICONIFIED" and prevents from throwing of the exception.
>
> Thank you,
> Anton
More information about the awt-dev
mailing list