[Xfce4-commits] r26272 - xfwm4/branches/xfce_4_4/src

Olivier Fourdan olivier at xfce.org
Wed Nov 7 22:52:03 CET 2007


Author: olivier
Date: 2007-11-07 21:52:03 +0000 (Wed, 07 Nov 2007)
New Revision: 26272

Modified:
   xfwm4/branches/xfce_4_4/src/client.c
Log:
Apply a patch from Andreas Lampersperger <lampersperger.andreas at heidenhain.de> to improve ICCCM compliance regarding synthetic ConfigureNotify event (Bug #3610)

Modified: xfwm4/branches/xfce_4_4/src/client.c
===================================================================
--- xfwm4/branches/xfce_4_4/src/client.c	2007-11-07 20:22:20 UTC (rev 26271)
+++ xfwm4/branches/xfce_4_4/src/client.c	2007-11-07 21:52:03 UTC (rev 26272)
@@ -683,6 +683,11 @@
     TRACE ("configuring client \"%s\" (0x%lx) %s, type %u", c->name,
         c->window, flags & CFG_CONSTRAINED ? "constrained" : "not contrained", c->type);
 
+    px = c->x;
+    py = c->y;
+    pwidth = c->width;
+    pheight = c->height;
+
     if (mask & CWX)
     {
         if (!FLAG_TEST (c->xfwm_flags, XFWM_FLAG_MOVING_RESIZING))
@@ -757,11 +762,6 @@
          && CONSTRAINED_WINDOW (c)
          && !((c->gravity == StaticGravity) && (c->x == 0) && (c->y == 0)))
     {
-        px = c->x;
-        py = c->y;
-        pwidth = c->width;
-        pheight = c->height;
-
         /* Keep fully visible only on resize */
         clientConstrainPos (c, (mask & (CWWidth | CWHeight)));
 
@@ -769,25 +769,42 @@
         {
             mask |= CWX;
         }
+        else
+        {
+            mask &= ~CWX;
+        }
+
         if (c->y != py)
         {
             mask |= CWY;
         }
+        else
+        {
+            mask &= ~CWY;
+        }
 
         if (c->width != pwidth)
         {
             mask |= CWWidth;
         }
+        else
+        {
+            mask &= ~CWWidth;
+        }
         if (c->height != pheight)
         {
             mask |= CWHeight;
         }
+        else
+        {
+            mask &= ~CWHeight;
+        }
     }
 
     clientConfigureWindows (c, wc, mask, flags);
     /*
 
-      We reparent to client window. According to the ICCCM spec, the
+      We reparent the client window. According to the ICCCM spec, the
       WM must send a senthetic event when the window is moved and not resized.
 
       But, since we reparent the window, we must also send a synthetic



More information about the Xfce4-commits mailing list