< prev index next >
src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java
Print this page
*** 1203,1223 ****
}
return rootOwner;
}
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));
}
}
private void orderAboveSiblingsImpl(Window[] windows) {
ArrayList<Window> childWindows = new ArrayList<Window>();
--- 1203,1233 ----
}
return rootOwner;
}
private void orderAboveSiblings() {
+ CPlatformWindow rootOwner = getRootOwner();
+
+ // 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);
}
}
private void orderAboveSiblingsImpl(Window[] windows) {
ArrayList<Window> childWindows = new ArrayList<Window>();
< prev index next >