[fusion-commits] Resizes a window to the maximum size still available without overlapping with other windows: Changes to 'master' (7187d3c321cb2ed2f9fef930b3e6d1d94ade27ad)

kristian at server.opencompositing.org kristian at server.opencompositing.org
Tue May 20 23:14:10 CEST 2008


New commits:
commit 7187d3c321cb2ed2f9fef930b3e6d1d94ade27ad
Author: Kristian Lyngstol <kristian at yoda.lyngstol.net>
Date:   Tue May 20 23:10:56 2008 +0200

    Ignore Docks except the struts


 maximumize.c |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)


Modified: fusion/plugins/maximumize/maximumize.c
===================================================================
--- fusion/plugins/maximumize/maximumize.c
+++ fusion/plugins/maximumize/maximumize.c
@@ -79,6 +79,7 @@ maximumizeEmptyRegion (CompWindow *window,
 
     for (w = s->windows; w; w = w->next)
     {
+	EMPTY_REGION (tmpRegion);
         if (w->id == window->id)
             continue;
 
@@ -88,6 +89,20 @@ maximumizeEmptyRegion (CompWindow *window,
 	if (w->wmType & CompWindowTypeDesktopMask)
 	    continue;
 
+	if (w->wmType & CompWindowTypeDockMask)
+	{
+	    if (w->struts) 
+	    {
+		XUnionRectWithRegion (&w->struts->left, tmpRegion, tmpRegion);
+		XUnionRectWithRegion (&w->struts->right, tmpRegion, tmpRegion);
+		XUnionRectWithRegion (&w->struts->top, tmpRegion, tmpRegion);
+		XUnionRectWithRegion (&w->struts->bottom, tmpRegion, tmpRegion);
+		XUnionRectWithRegion (&tmpRect, tmpRegion, tmpRegion);
+		XSubtractRegion (newRegion, tmpRegion, newRegion);
+	    }
+	    continue;
+	}
+
 	if (maximumizeGetIgnoreSticky(s->display) && 
 	    (w->state & CompWindowStateStickyMask) &&
 	    !(w->wmType & CompWindowTypeDockMask))
@@ -102,8 +117,6 @@ maximumizeEmptyRegion (CompWindow *window,
 	if (maximumizeGetIgnoreOverlapping(s->display) &&
 		maximumizeSubstantialOverlap(tmpRect, windowRect))
 	    continue;
-
-	EMPTY_REGION (tmpRegion);
 	XUnionRectWithRegion (&tmpRect, tmpRegion, tmpRegion);
 	XSubtractRegion (newRegion, tmpRegion, newRegion);
     }


More information about the commits mailing list