Author: olivier
Date: 2008-12-16 22:16:01 +0000 (Tue, 16 Dec 2008)
New Revision: 29029

Modified:
   xfwm4/trunk/ChangeLog
   xfwm4/trunk/NEWS
   xfwm4/trunk/src/placement.c
Log:
        * src/placement.c: Prevent "fill" from expanding beyound physical 
          monitor.

Modified: xfwm4/trunk/ChangeLog
===================================================================
--- xfwm4/trunk/ChangeLog       2008-12-16 18:38:14 UTC (rev 29028)
+++ xfwm4/trunk/ChangeLog       2008-12-16 22:16:01 UTC (rev 29029)
@@ -1,3 +1,8 @@
+2008-12-16  olivier
+
+       * src/placement.c: Prevent "fill" from expanding beyound physical 
+         monitor.
+
 2008-12-14  olivier
 
        * src/placement.c, src/placement.h, src/client.c, src/client.h:

Modified: xfwm4/trunk/NEWS
===================================================================
--- xfwm4/trunk/NEWS    2008-12-16 18:38:14 UTC (rev 29028)
+++ xfwm4/trunk/NEWS    2008-12-16 22:16:01 UTC (rev 29029)
@@ -8,6 +8,7 @@
 - Remove maximization if a client updates its size max size hint (Bug #4706).
 - String review by Josh Saddler <nightmo...@gentoo.org> (Bug #4703).
 - Fix fill horizontally and vertically not working as expected (Bug #4712).
+- Prevent "fill" from expanding beyound physical monitor.
 
 4.5.92 (Xfce 4.6beta2)
 ======================

Modified: xfwm4/trunk/src/placement.c
===================================================================
--- xfwm4/trunk/src/placement.c 2008-12-16 18:38:14 UTC (rev 29028)
+++ xfwm4/trunk/src/placement.c 2008-12-16 22:16:01 UTC (rev 29029)
@@ -918,43 +918,47 @@
     }
 
     /* If there are neighbours, resize to their borders.
-     * If not, resize to the largest size available taht you just have 
computed.
+     * If not, resize to the largest size available that you just have 
computed.
      */
 
+    wc.x = frameLeft(c);
     if (east_neighbour)
     {
-        wc.x = frameX(east_neighbour) + frameWidth(east_neighbour) + 
frameLeft(c);
+        wc.x += MAX (frameX(east_neighbour) + frameWidth(east_neighbour), 
full_x);
     }
     else
     {
-        wc.x = full_x + frameLeft(c);
+        wc.x += full_x;
     }
 
+    wc.width = full_x - frameRight(c) - wc.x;
     if (west_neighbour)
     {
-        wc.width = full_x + frameX(west_neighbour) - frameRight(c) - wc.x;
+        wc.width += MIN (frameX(west_neighbour), full_w);
     }
     else
     {
-        wc.width = full_x + full_w - frameRight(c) - wc.x;
+        wc.width += full_w;
     }
 
+    wc.y = frameTop(c);
     if (north_neighbour)
     {
-        wc.y = frameY(north_neighbour) + frameHeight(north_neighbour) + 
frameTop(c);
+        wc.y += MAX (frameY(north_neighbour) + frameHeight(north_neighbour), 
full_y);
     }
     else
     {
-        wc.y = full_y + frameTop(c);
+        wc.y += full_y;
     }
 
+    wc.height = full_y - frameBottom(c) - wc.y;
     if (south_neighbour)
     {
-        wc.height = full_y + frameY(south_neighbour) - frameBottom(c) - wc.y;
+        wc.height += MIN (frameY(south_neighbour), full_h);
     }
     else
     {
-        wc.height = full_y + full_h - frameBottom(c) - wc.y;
+        wc.height += full_h;
     }
 
     TRACE ("Fill size request: (%d,%d) %dx%d", wc.x, wc.y, wc.width, 
wc.height);

_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to