<AWT Dev> RFR: 8256465: [macos11] Java frame and dialog presented full screen freeze application

Kevin Rushforth kcr at openjdk.java.net
Fri Apr 9 20:50:10 UTC 2021

On Fri, 9 Apr 2021 05:42:37 GMT, Tejpal Rebari <trebari at openjdk.org> wrote:

> Hi All,
> Please review the following fix for jdk17.
> Issue : On MacOS 11 Java Frame and JDialog application is freezing  in Full Screen  when the System Preference -> General -> Prefer Tabs is set to "Full Screen". It is also freezing in normal screen when Prefer Tabs is set to "Always".
> It doesn't freeze when the Prefer tabs is set to "never".
> Fix : The default value of allowsAutomaticWindowTabbing is 0/NO in MacOS prior to bigSur(11)  
> (in the AWTWindow.m file),  so the issue is not seen in mac os 10.13 10.14 and 10.15.
> From MacOS 11 onwards  this value is set to 1/YES and the issue is seen.
> This issue can also be reproduced in MacOS 10.15 by setting setAllowsAutomaticWindowTabbing to true in the AWTWindow.m file.
> Fix is to set allowsAutomaticWindowTabbing to No for all the MacOS release staring from 10.12.
> The allowsAutomaticTabbing was introduced in MacOS 10.12 but the default value changed in macos11.
> Test : Added a manual test and tested on MacOS 10.15 and 11.
> All the internal tests run are green.

src/java.desktop/macosx/native/libawt_lwawt/awt/AWTWindow.m line 292:

> 290: 
> 291:     if (@available(macOS 10.12, *)) {
> 292:         [NSWindow setAllowsAutomaticWindowTabbing:NO];

This works as long as you are OK with requiring an Xcode with the 10.12 SDK to build (it won't affect the minimum runtime version). I think this is fine, but wanted to point that out.


PR: https://git.openjdk.java.net/jdk/pull/3407

More information about the awt-dev mailing list