<AWT Dev> <AWT dev> Review request for JDK-8206392: [macosx] Cycling through windows (JFrames) does not work with keyboard shortcut
dmitry.markov at oracle.com
Wed Sep 5 11:17:47 UTC 2018
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.
> On 4 Sep 2018, at 18:54, Manajit Halder <manajit.halder at oracle.com> wrote:
> Hi Dmitry,
> Thanks for your reply. Please see my reply inline.
> 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.
>>> 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/>
>>> Window ordering is not required if the window doesn't own any other windows.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the awt-dev