src/solaris/classes/sun/awt/X11/XWindowPeer.java
Print this page
*** 127,138 ****
*/
private static final int MAXIMUM_BUFFER_LENGTH_NET_WM_ICON = (2<<15) - 1;
void preInit(XCreateWindowParams params) {
target = (Component)params.get(TARGET);
- params.put(REPARENTED,
- Boolean.valueOf(isOverrideRedirect() || isSimpleWindow()));
super.preInit(params);
params.putIfNull(BIT_GRAVITY, Integer.valueOf(XConstants.NorthWestGravity));
long eventMask = 0;
if (params.containsKey(EVENT_MASK)) {
--- 127,136 ----
*** 515,531 ****
postEvent(new WindowEvent((Window)target,
WindowEvent.WINDOW_STATE_CHANGED,
oldState, newState));
}
- /**
- * DEPRECATED: Replaced by getInsets().
- */
- public Insets insets() {
- return getInsets();
- }
-
boolean isAutoRequestFocus() {
if (XToolkit.isToolkitThread()) {
return WindowAccessor.isAutoRequestFocus((Window)target);
} else {
return ((Window)target).isAutoRequestFocus();
--- 513,522 ----
*** 712,721 ****
--- 703,716 ----
@Override
public void handleConfigureNotifyEvent(XEvent xev) {
// TODO: We create an XConfigureEvent every time we override
// handleConfigureNotify() - too many!
XConfigureEvent xe = xev.get_xconfigure();
+ if (xe.get_window() != getWindow()) {
+ return;
+ }
+
checkIfOnNewScreen(new Rectangle(xe.get_x(),
xe.get_y(),
xe.get_width(),
xe.get_height()));
*** 1175,1184 ****
--- 1170,1183 ----
}
}
}
public void handleMapNotifyEvent(XEvent xev) {
+ if (xev.get_xany().get_window() != getWindow()) {
+ return;
+ }
+
// See 6480534.
isUnhiding |= isWMStateNetHidden();
super.handleMapNotifyEvent(xev);
if (!winAttr.initialFocus) {
*** 1209,1218 ****
--- 1208,1220 ----
}
}
}
public void handleUnmapNotifyEvent(XEvent xev) {
+ if (xev.get_xany().get_window() != getWindow()) {
+ return;
+ }
super.handleUnmapNotifyEvent(xev);
// On Metacity UnmapNotify comes before PropertyNotify (for _NET_WM_STATE_HIDDEN).
// So we also check for the property later in MapNotify. See 6480534.
isUnhiding |= isWMStateNetHidden();
*** 1295,1309 ****
else
return hasBits;
}
}
! void setReparented(boolean newValue) {
! super.setReparented(newValue);
XToolkit.awtLock();
try {
! if (isReparented() && delayedModalBlocking) {
addToTransientFors((XDialogPeer) ComponentAccessor.getPeer(modalBlocker));
delayedModalBlocking = false;
}
} finally {
XToolkit.awtUnlock();
--- 1297,1320 ----
else
return hasBits;
}
}
! @Override
! public boolean mayBeReparented() {
! return
! !isOverrideRedirect() &&
! !isSimpleWindow() &&
! super.mayBeReparented();
! }
!
! @Override
! public void setNativeParent(long parent) {
! super.setNativeParent(parent);
XToolkit.awtLock();
try {
! if (!mayBeReparented() && delayedModalBlocking) {
addToTransientFors((XDialogPeer) ComponentAccessor.getPeer(modalBlocker));
delayedModalBlocking = false;
}
} finally {
XToolkit.awtUnlock();
*** 1389,1410 ****
XDialogPeer blockerPeer = (XDialogPeer) ComponentAccessor.getPeer(d);
if (blocked) {
log.log(Level.FINE, "{0} is blocked by {1}", new Object[] { this, blockerPeer});
modalBlocker = d;
! if (isReparented() || XWM.isNonReparentingWM()) {
addToTransientFors(blockerPeer, javaToplevels);
} else {
delayedModalBlocking = true;
}
} else {
if (d != modalBlocker) {
throw new IllegalStateException("Trying to unblock window blocked by another dialog");
}
modalBlocker = null;
! if (isReparented() || XWM.isNonReparentingWM()) {
removeFromTransientFors();
} else {
delayedModalBlocking = false;
}
}
--- 1400,1421 ----
XDialogPeer blockerPeer = (XDialogPeer) ComponentAccessor.getPeer(d);
if (blocked) {
log.log(Level.FINE, "{0} is blocked by {1}", new Object[] { this, blockerPeer});
modalBlocker = d;
! if (!mayBeReparented()) {
addToTransientFors(blockerPeer, javaToplevels);
} else {
delayedModalBlocking = true;
}
} else {
if (d != modalBlocker) {
throw new IllegalStateException("Trying to unblock window blocked by another dialog");
}
modalBlocker = null;
! if (!mayBeReparented()) {
removeFromTransientFors();
} else {
delayedModalBlocking = false;
}
}