< prev index next >
src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java
Print this page
*** 428,440 ****
}
}
@Override // PlatformWindow
public void dispose() {
- if (owner != null) {
- CWrapper.NSWindow.removeChildWindow(owner.getNSWindowPtr(), getNSWindowPtr());
- }
contentView.dispose();
nativeDispose(getNSWindowPtr());
CPlatformWindow.super.dispose();
}
--- 428,437 ----
*** 525,554 ****
@Override // PlatformWindow
public void setVisible(boolean visible) {
final long nsWindowPtr = getNSWindowPtr();
- // Process parent-child relationship when hiding
- final ComponentAccessor acc = AWTAccessor.getComponentAccessor();
- if (!visible) {
- // Unparent my children
- for (Window w : target.getOwnedWindows()) {
- WindowPeer p = acc.getPeer(w);
- if (p instanceof LWWindowPeer) {
- CPlatformWindow pw = (CPlatformWindow)((LWWindowPeer)p).getPlatformWindow();
- if (pw != null && pw.isVisible()) {
- CWrapper.NSWindow.removeChildWindow(nsWindowPtr, pw.getNSWindowPtr());
- }
- }
- }
-
- // Unparent myself
- if (owner != null && owner.isVisible()) {
- CWrapper.NSWindow.removeChildWindow(owner.getNSWindowPtr(), nsWindowPtr);
- }
- }
-
// Configure stuff
updateIconImages();
updateFocusabilityForAutoRequestFocus(false);
boolean wasMaximized = isMaximized();
--- 522,531 ----
*** 617,640 ****
// Configure stuff #2
updateFocusabilityForAutoRequestFocus(true);
// Manage parent-child relationship when showing
if (visible) {
! // Add myself as a child
if (owner != null && owner.isVisible()) {
! CWrapper.NSWindow.addChildWindow(owner.getNSWindowPtr(), nsWindowPtr, CWrapper.NSWindow.NSWindowAbove);
applyWindowLevel(target);
}
! // Add my own children to myself
for (Window w : target.getOwnedWindows()) {
final Object p = acc.getPeer(w);
if (p instanceof LWWindowPeer) {
CPlatformWindow pw = (CPlatformWindow)((LWWindowPeer)p).getPlatformWindow();
if (pw != null && pw.isVisible()) {
! CWrapper.NSWindow.addChildWindow(nsWindowPtr, pw.getNSWindowPtr(), CWrapper.NSWindow.NSWindowAbove);
pw.applyWindowLevel(w);
}
}
}
}
--- 594,619 ----
// Configure stuff #2
updateFocusabilityForAutoRequestFocus(true);
// Manage parent-child relationship when showing
+ final ComponentAccessor acc = AWTAccessor.getComponentAccessor();
+
if (visible) {
! // Order myself above my parent
if (owner != null && owner.isVisible()) {
! CWrapper.NSWindow.orderWindow(nsWindowPtr, CWrapper.NSWindow.NSWindowAbove, owner.getNSWindowPtr());
applyWindowLevel(target);
}
! // Order my own children above myself
for (Window w : target.getOwnedWindows()) {
final Object p = acc.getPeer(w);
if (p instanceof LWWindowPeer) {
CPlatformWindow pw = (CPlatformWindow)((LWWindowPeer)p).getPlatformWindow();
if (pw != null && pw.isVisible()) {
! CWrapper.NSWindow.orderWindow(pw.getNSWindowPtr(), CWrapper.NSWindow.NSWindowAbove, nsWindowPtr);
pw.applyWindowLevel(w);
}
}
}
}
*** 1056,1067 ****
owner.orderAboveSiblings();
// Order the window to front of the stack of child windows
final long nsWindowSelfPtr = getNSWindowPtr();
final long nsWindowOwnerPtr = owner.getNSWindowPtr();
! CWrapper.NSWindow.removeChildWindow(nsWindowOwnerPtr, nsWindowSelfPtr);
! CWrapper.NSWindow.addChildWindow(nsWindowOwnerPtr, nsWindowSelfPtr, CWrapper.NSWindow.NSWindowAbove);
}
applyWindowLevel(target);
}
--- 1035,1046 ----
owner.orderAboveSiblings();
// Order the window to front of the stack of child windows
final long nsWindowSelfPtr = getNSWindowPtr();
final long nsWindowOwnerPtr = owner.getNSWindowPtr();
! CWrapper.NSWindow.orderFront(nsWindowOwnerPtr);
! CWrapper.NSWindow.orderWindow(nsWindowSelfPtr, CWrapper.NSWindow.NSWindowAbove, nsWindowOwnerPtr);
}
applyWindowLevel(target);
}
< prev index next >