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

Kevin Rushforth kcr at openjdk.java.net
Fri Jun 4 13:52:04 UTC 2021


On Thu, 3 Jun 2021 16:55:12 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.
>
> Tejpal Rebari has updated the pull request incrementally with one additional commit since the last revision:
> 
>   add SupressWarnings and test changes

The updates look good. I noted one more test issue and otherwise I think this is ready to go.

test/jdk/java/awt/Window/TestAppFreeze.java line 107:

> 105: 
> 106:     private static void testApp() {
> 107:         testFrame = new JFrame("TestFrame");

This is being run on the wrong thread. You should wrap this method in an `invokeLater` as you did in the `createInstructionUI` method.

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

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


More information about the awt-dev mailing list