[Xfce4-commits] r29511 - in xfwm4/trunk: . src

Olivier Fourdan olivier at xfce.org
Wed Feb 18 20:39:36 CET 2009


Author: olivier
Date: 2009-02-18 19:39:36 +0000 (Wed, 18 Feb 2009)
New Revision: 29511

Modified:
   xfwm4/trunk/ChangeLog
   xfwm4/trunk/NEWS
   xfwm4/trunk/src/placement.c
Log:
	* src/placement.c: Fix size not properly computed by the fill 
	  function with a dock on top or left (Bug #4960). 
 

Modified: xfwm4/trunk/ChangeLog
===================================================================
--- xfwm4/trunk/ChangeLog	2009-02-18 17:57:58 UTC (rev 29510)
+++ xfwm4/trunk/ChangeLog	2009-02-18 19:39:36 UTC (rev 29511)
@@ -1,3 +1,8 @@
+2009-02-18	olivier
+
+	* src/placement.c: Fix size not properly computed by the fill 
+	  function with a dock on top or left (Bug #4960).
+
 2009-02-17	olivier
 
 	* src/keyboard.c: Use proper type for returned value.

Modified: xfwm4/trunk/NEWS
===================================================================
--- xfwm4/trunk/NEWS	2009-02-18 17:57:58 UTC (rev 29510)
+++ xfwm4/trunk/NEWS	2009-02-18 19:39:36 UTC (rev 29511)
@@ -3,6 +3,8 @@
 
 - Fix possible monitor cache size inconsistency when the screen size changes.
 - Fix fill function not working with multiscreen.
+- Fix size not properly computed by the fill function with a dock on top or
+  left (Bug #4960).
 - Only display the shortcut conflict dialog if the conflict is with a different
   shortcut than the one being edited.
 - When stealing a shortcut from another shortcuts provider, clear the shortcut

Modified: xfwm4/trunk/src/placement.c
===================================================================
--- xfwm4/trunk/src/placement.c	2009-02-18 17:57:58 UTC (rev 29510)
+++ xfwm4/trunk/src/placement.c	2009-02-18 19:39:36 UTC (rev 29511)
@@ -917,45 +917,29 @@
      * If not, resize to the largest size available that you just have computed.
      */
 
-    wc.x = frameLeft(c);
+    wc.x = full_x + frameLeft(c);
     if (west_neighbour)
     {
-        wc.x += MAX (frameX(west_neighbour) + frameWidth(west_neighbour), full_x);
+        wc.x += MAX (frameX(west_neighbour) + frameWidth(west_neighbour) - full_x, 0);
     }
-    else
-    {
-        wc.x += full_x;
-    }
 
-    wc.width = full_x - frameRight(c) - wc.x;
+    wc.width = full_w - frameRight(c) - (wc.x - rect.x);
     if (east_neighbour)
     {
-        wc.width += MIN (frameX(east_neighbour) - rect.x, full_w);
+        wc.width -= MAX (full_w - (frameX(east_neighbour) - rect.x), 0);
     }
-    else
-    {
-        wc.width += full_w;
-    }
 
-    wc.y = frameTop(c);
+    wc.y = full_y + frameTop(c);
     if (north_neighbour)
     {
-        wc.y += MAX (frameY(north_neighbour) + frameHeight(north_neighbour), full_y);
+        wc.y += MAX (frameY(north_neighbour) + frameHeight(north_neighbour) - full_y, 0);
     }
-    else
-    {
-        wc.y += full_y;
-    }
 
-    wc.height = full_y - frameBottom(c) - wc.y;
+    wc.height = full_h - frameBottom(c) - (wc.y - rect.y);
     if (south_neighbour)
     {
-        wc.height += MIN (frameY(south_neighbour) - rect.y, full_h);
+        wc.height -= MAX (full_h - (frameY(south_neighbour) - rect.y), 0);
     }
-    else
-    {
-        wc.height += full_h;
-    }
 
     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