--- old/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java 2018-08-30 19:15:33.000000000 +0530 +++ new/src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java 2018-08-30 19:15:32.000000000 +0530 @@ -1205,17 +1205,27 @@ } 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.execute(CWrapper.NSWindow::orderFront); - } + // Do not order child windows of iconified owner. if (!rootOwner.isIconified()) { final WindowAccessor windowAccessor = AWTAccessor.getWindowAccessor(); - orderAboveSiblingsImpl(windowAccessor.getOwnedWindows(rootOwner.target)); + 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); } }