<AWT Dev> <AWT dev>[12] Review request for JDK-8206392: [macosx] Cycling through windows (JFrames) does not work with keyboard shortcut

Manajit Halder manajit.halder at oracle.com
Mon Sep 10 12:19:45 UTC 2018

Hi Dmitry,

Sure, I can port it to JDK 8u, but would require your help in check-in, 
as I don't have permission to check-in JDK 8u.



On 09/09/18 3:35 PM, Dmitry Markov wrote:
> Hi Manajit,
> The fix looks good to me. Can you port it to JDK 8u too, please?
> Thanks,
> Dmitry
>> On 7 Sep 2018, at 12:22, Manajit Halder <manajit.halder at oracle.com 
>> <mailto:manajit.halder at oracle.com>> wrote:
>> Hi Dmitry,
>> Thanks for the test scenarios. I have run all the AWT, Swing and JCK 
>> automatic (open and closed) test cases along with manual test cases 
>> related to Modal Dialog and ordering to ensure that fix doesn't cause 
>> any regression. These JCK interactive test were run 
>> "api/java_awt/interactive/ModalDialogTests.html", 
>> "api/java_awt/interactive/FileDialogTests.html", 
>> "api/java_awt/interactive/PageDialogTest.html" and 
>> "api/java_awt/interactive/WindowTest.html" (tests toFront and toBack 
>> between a window and a Frame).
>> For example, manual test 
>> "open/test/jdk/java/awt/Modal/WsDisabledStyle/CloseBlocker/CloseBlocker.java" 
>> tests the scenario specified by you. Also there are many automatic 
>> test cases in "open/test/jdk/java/awt/Modal/ToBack" and 
>> "open/test/jdk/java/awt/Modal/ToFront" which tests different 
>> scenarios related to Modal Dialog and Frame/Window ordering.
>> Please let me know if you have any other test scenarios to be tested.
>> Thanks,
>> Manajit
>> On 05/09/18 4:47 PM, Dmitry Markov wrote:
>>> Hi Manajit,
>>> Thank you for the clarification.
>>> Actually I worry about the case when a window is blocked by another 
>>> window or a modal dialog. We call orderAboveSiblings() for the 
>>> blocker window in several places, (e.g. inside setVisible(), 
>>> checkBlockingAndOrder(), etc.) and I guess some of these call might 
>>> fail with the new implementation of orderAboveSiblings(), (i.e. the 
>>> modal dialog might be placed behind the blocked window).
>>> For example, let’s say we have the window which is blocked by the 
>>> modal dialog. What will be the position of the dialog (above or 
>>> behind the blocked window) once the window is activated? Please 
>>> note: there are several ways to activate the window: mouse click, 
>>> toFront() call, etc. Can you verify that these scenarios still work 
>>> properly on the build with your fix, please?
>>> Also it would be good to execute related AWT/Swing jtreg tests to 
>>> ensure that nothing is broken.
>>> Thanks,
>>> Dmitry
>>>> On 4 Sep 2018, at 18:54, Manajit Halder <manajit.halder at oracle.com 
>>>> <mailto:manajit.halder at oracle.com>> wrote:
>>>> Hi Dmitry,
>>>> Thanks for your reply. Please see my reply inline.
>>>> Thanks,
>>>> Manajit
>>>> On 01/09/18 12:02 AM, Dmitry Markov wrote:
>>>>> Hi Manajit,
>>>>> The current implementation assumes that orderAboveSiblings() 
>>>>> places the window in front of other windows located at the same 
>>>>> level. The proposed fix introduces new behaviour: if the window 
>>>>> does not have an owner and child windows it won’t be ordered, 
>>>>> (i.e. in certain conditions the window may be obscured by other 
>>>>> windows even after orderAboveSibling() execution). Most likely 
>>>>> such approach will break existed functionality - some windows will 
>>>>> be incorrectly placed behind other windows.
>>>>     If I am not wrong windows (other than Window.Type.POPUP) are 
>>>> already ordered in setVisible method at line no 632 while creation. 
>>>> While debugging I observed that orderFront is called twice when the 
>>>> window is displayed for the first time (in method setVisible and in 
>>>> method orderAboveSiblings). Now when Key press COMMAND + ` is 
>>>> pressed the current window receives windowDidBecomeMain 
>>>> notification and which calls orderFront and also COMMAND + ` tries 
>>>> to order the window above. Two time ordering the window when 
>>>> COMMAND + ` is pressed is causing problem in case of multiple windows.
>>>>> I am sorry, but the relationship between the original problem 
>>>>> described in the bug, (i.e. cycling through windows issue) and 
>>>>> implementation of orderAboveSiblings() is NOT clear. Can you 
>>>>> explain this?
>>>>     This issue is a regression of JDK-8169589 introduced in JDK 
>>>> release 8u131. 8169589 introduced new window ordering model and 
>>>> which has introduced the cycling through window issue.
>>>>> Thanks,
>>>>> Dmitry
>>>>>> On 31 Aug 2018, at 07:55, Manajit Halder 
>>>>>> <manajit.halder at oracle.com <mailto:manajit.halder at oracle.com>> wrote:
>>>>>> Hi All,
>>>>>> Please review the fix for JDK12.

>>>>>> https://bugs.openjdk.java.net/browse/JDK-8206392
>>>>>> <https://bugs.openjdk.java.net/browse/JDK-8206392>

>>>>>> http://cr.openjdk.java.net/~mhalder/8206392/webrev.00/ 
>>>>>> <http://cr.openjdk.java.net/%7Emhalder/8206392/webrev.00/>
>>>>>> Fix: 

>>>>>>     Window ordering is not required if the window doesn't own any 
>>>>>> other windows.
>>>>>> Regards,
>>>>>> Manajit

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20180910/b032998c/attachment.html>

More information about the awt-dev mailing list