rendered paste bodyFrom 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