From 5c4fd09002b375e6565cb8b94772b3a96e2fa9cf Mon Sep 17 00:00:00 2001 From: Danny Baumann 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