--- old/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java 2018-11-30 09:34:53.000000000 +0000 +++ new/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java 2018-11-30 09:34:52.000000000 +0000 @@ -1264,27 +1264,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)); } }