< prev index next >
src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java
Print this page
@@ -856,11 +856,11 @@
return ref.get();
}
@Override
public void updateFocusableWindowState() {
- final boolean isFocusable = isNativelyFocusableWindow();
+ final boolean isFocusable = isNativelyFocusableWindow() || (getOwnerFrameOrDialog(target) instanceof CEmbeddedFrame);
setStyleBits(SHOULD_BECOME_KEY | SHOULD_BECOME_MAIN | RESIZABLE, isFocusable); // set bits at once
}
@Override
public void setAlwaysOnTop(boolean isAlwaysOnTop) {
@@ -1274,10 +1274,18 @@
} else if (target.getType() == Window.Type.POPUP) {
execute(ptr->CWrapper.NSWindow.setLevel(ptr, CWrapper.NSWindow.NSPopUpMenuWindowLevel));
}
}
+ private Window getOwnerFrameOrDialog(Window window) {
+ Window owner = window.getOwner();
+ while(owner != null && !(owner instanceof Frame || owner instanceof Dialog)) {
+ owner = owner.getOwner();
+ }
+ return owner;
+ }
+
// ----------------------------------------------------------------------
// NATIVE CALLBACKS
// ----------------------------------------------------------------------
private void windowWillMiniaturize() {
< prev index next >