src/solaris/classes/sun/awt/X11/XDecoratedPeer.java
Print this page
@@ -719,19 +719,21 @@
Point newLocation = targetBounds.getLocation();
if (xe.get_send_event() || runningWM == XWM.NO_WM || XWM.isNonReparentingWM()) {
// Location, Client size + insets
newLocation = new Point(xe.get_x() - currentInsets.left, xe.get_y() - currentInsets.top);
} else {
- // CDE/MWM/Metacity/Sawfish bug: if shell is resized using
- // top or left border, we don't receive synthetic
- // ConfigureNotify, only the one from X with zero
- // coordinates. This is the workaround to get real
- // location, 6261336
+ // ICCCM 4.1.5 states that a real ConfigureNotify will be sent when
+ // a window is resized but the client can not tell if the window was
+ // moved or not. The client should consider the position as unkown
+ // and use TranslateCoordinates to find the actual position.
+ //
+ // TODO this should be the default for every case.
switch (XWM.getWMID()) {
case XWM.CDE_WM:
case XWM.MOTIF_WM:
case XWM.METACITY_WM:
+ case XWM.MUTTER_WM:
case XWM.SAWFISH_WM:
{
Point xlocation = queryXLocation();
if (log.isLoggable(PlatformLogger.FINE)) log.fine("New X location: {0}", xlocation);
if (xlocation != null) {