All pastes #637945 Raw Edit

Zeug

public text v1 · immutable
#637945 ·published 2007-07-29 11:56 UTC
rendered paste body
From 5c4fd09002b375e6565cb8b94772b3a96e2fa9cf Mon Sep 17 00:00:00 2001
From: Danny Baumann <dannybaumann@web.de>
Date: Sun, 29 Jul 2007 14:51:39 +0200
Subject: [PATCH] Do grouped (un)maximization in state change notify rather than in resize notify.

---
 group.c |   56 ++++++++++++++++++++++++++++----------------------------
 1 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/group.c b/group.c
index 512889f..cc91990 100644
--- a/group.c
+++ b/group.c
@@ -1718,29 +1718,8 @@ groupWindowResizeNotify (CompWindow *w,
 						 int        dheight)
 {
 	GROUP_SCREEN (w->screen);
-	GROUP_DISPLAY (w->screen->display);
 	GROUP_WINDOW (w);
 
-	if (gw->group && !gd->ignoreMode)
-	{
-		if (((gw->lastState & MAXIMIZE_STATE) != (w->state & MAXIMIZE_STATE)) &&
-			groupGetMaximizeUnmaximizeAll (w->screen))
-		{
-			int i;
-			for (i = 0; i < gw->group->nWins; i++)
-			{
-				CompWindow *cw = gw->group->windows[i];
-				if (!cw)
-					continue;
-
-				if (cw->id == w->id)
-					continue;
-
-				maximizeWindow (cw, w->state & MAXIMIZE_STATE);
-			}
-		}
-	}
-
 	if (gw->resizeGeometry)
 	{
 		free (gw->resizeGeometry);
@@ -2083,13 +2062,34 @@ Bool groupDamageWindowRect(CompWindow * w, Bool initial, BoxPtr rect)
 void
 groupWindowStateChangeNotify (CompWindow *w)
 {
-	 GROUP_SCREEN (w->screen);
-	 GROUP_WINDOW (w);
+	GROUP_DISPLAY (w->screen->display);
+	GROUP_SCREEN (w->screen);
+	GROUP_WINDOW (w);
+
+	if (gw->group && !gd->ignoreMode)
+	{
+		if (((gw->lastState & MAXIMIZE_STATE) != (w->state & MAXIMIZE_STATE)) &&
+			groupGetMaximizeUnmaximizeAll (w->screen))
+		{
+			int i;
+			for (i = 0; i < gw->group->nWins; i++)
+			{
+				CompWindow *cw = gw->group->windows[i];
+				if (!cw)
+					continue;
+
+				if (cw->id == w->id)
+					continue;
+
+				maximizeWindow (cw, w->state & MAXIMIZE_STATE);
+			}
+		}
+	}
 
-	 gw->lastState = w->lastState;
+	gw->lastState = w->state;
 
-	 UNWRAP (gs, w->screen, windowStateChangeNotify);
-	 (*w->screen->windowStateChangeNotify) (w);
-	 WRAP (gs, w->screen, windowStateChangeNotify,
-		   groupWindowStateChangeNotify);
+	UNWRAP (gs, w->screen, windowStateChangeNotify);
+	(*w->screen->windowStateChangeNotify) (w);
+	WRAP (gs, w->screen, windowStateChangeNotify,
+		  groupWindowStateChangeNotify);
 }
-- 
1.5.2.2