[Xfce4-commits] r25852 - xfwm4/trunk/src

Olivier Fourdan olivier at xfce.org
Sun Jun 24 19:54:51 CEST 2007


Author: olivier
Date: 2007-06-24 17:54:51 +0000 (Sun, 24 Jun 2007)
New Revision: 25852

Modified:
   xfwm4/trunk/src/client.c
Log:
Fix filling function being a no-op if not other windows is visible, fix wrong computation size with struts on top or right sides

Modified: xfwm4/trunk/src/client.c
===================================================================
--- xfwm4/trunk/src/client.c	2007-06-24 16:30:47 UTC (rev 25851)
+++ xfwm4/trunk/src/client.c	2007-06-24 17:54:51 UTC (rev 25852)
@@ -3252,8 +3252,6 @@
             /* Fill horizontally */
             if (fill_type & CLIENT_FILL_HORIZ)
             {
-                mask |= CWX | CWWidth;
-
                 /*
                  * check if the neigbour client (c2) is located
                  * east or west of our client.
@@ -3300,8 +3298,6 @@
             /* Fill vertically */
             if (fill_type & CLIENT_FILL_VERT)
             {
-                mask |= CWY | CWHeight;
-
                 /* check if the neigbour client (c2) is located
                  * north or south of our client.
                  */
@@ -3367,16 +3363,19 @@
 
     if ((fill_type & CLIENT_FILL) == CLIENT_FILL)
     {
+        mask = CWX | CWY | CWHeight | CWWidth;
         /* Adjust size to the largest size available, not covering struts */
         clientMaxSpace (screen_info, &full_x, &full_y, &full_w, &full_h);
     }
     else if (fill_type & CLIENT_FILL_VERT)
     {
+        mask = CWY | CWHeight;
         /* Adjust size to the tallest size available, for the current horizontal position/width */
         clientMaxSpace (screen_info, &tmp_x, &full_y, &tmp_w, &full_h);
     }
     else if (fill_type & CLIENT_FILL_HORIZ)
     {
+        mask = CWX | CWWidth;
         /* Adjust size to the widest size available, for the current vertical position/height */
         clientMaxSpace (screen_info, &full_x, &tmp_y, &full_w, &tmp_h);
     }
@@ -3396,11 +3395,11 @@
 
     if (west_neighbour)
     {
-        wc.width = frameX(west_neighbour) - frameRight(c) - wc.x;
+        wc.width = full_x + frameX(west_neighbour) - frameRight(c) - wc.x;
     }
     else
     {
-        wc.width = full_w - frameRight(c) - wc.x;
+        wc.width = full_x + full_w - frameRight(c) - wc.x;
     }
 
     if (north_neighbour)
@@ -3414,13 +3413,14 @@
 
     if (south_neighbour)
     {
-        wc.height = frameY(south_neighbour) - frameBottom(c) - wc.y;
+        wc.height = full_y + frameY(south_neighbour) - frameBottom(c) - wc.y;
     }
     else
     {
-        wc.height = full_h - frameBottom(c) - wc.y;
+        wc.height = full_y + full_h - frameBottom(c) - wc.y;
     }
 
+    TRACE ("Fill size request: (%d,%d) %dx%d", wc.x, wc.y, wc.width, wc.height);
     if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_MANAGED))
     {
         /*



More information about the Xfce4-commits mailing list