changeset 13472:c7becddb7446

8213983: [macosx] Keyboard shortcut ?cmd +`? stops working properly if popup window is displayed Reviewed-by: kaddepalli, serb
author dmarkov
date Thu, 06 Dec 2018 13:32:15 +0000
parents b2db5642007b
children 337a670d5efa
files src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java
diffstat 1 files changed, 7 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java	Tue Oct 02 13:48:08 2018 +0200
+++ b/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java	Thu Dec 06 13:32:15 2018 +0000
@@ -1131,27 +1131,18 @@
     }
 
     private void orderAboveSiblings() {
+        // Recursively pop up the windows from the very bottom, (i.e. root owner) so that
+        // the windows are ordered above their nearest owner; ancestors of the window,
+        // which is going to become 'main window', are placed above their siblings.
         CPlatformWindow rootOwner = getRootOwner();
+        if (rootOwner.isVisible() && !rootOwner.isIconified() && !rootOwner.isActive()) {
+            rootOwner.execute(CWrapper.NSWindow::orderFront);
+        }
 
         // Do not order child windows of iconified owner.
         if (!rootOwner.isIconified()) {
             final WindowAccessor windowAccessor = AWTAccessor.getWindowAccessor();
-            Window[] windows = windowAccessor.getOwnedWindows(rootOwner.target);
-
-            // No need to order windows if it doesn't own other windows and hence return
-            if (windows.length == 0) {
-                return;
-            }
-
-            // Recursively pop up the windows from the very bottom, (i.e. root owner) so that
-            // the windows are ordered above their nearest owner; ancestors of the window,
-            // which is going to become 'main window', are placed above their siblings.
-            if (rootOwner.isVisible()) {
-                rootOwner.execute(CWrapper.NSWindow::orderFront);
-            }
-
-            // Order child windows.
-            orderAboveSiblingsImpl(windows);
+            orderAboveSiblingsImpl(windowAccessor.getOwnedWindows(rootOwner.target));
         }
     }