[Xfce4-commits] [xfce/xfwm4] 02/02: Fix reconfigure when toggling maximize state
noreply at xfce.org
noreply at xfce.org
Sat Jan 10 00:11:27 CET 2015
This is an automated email from the git hooks/post-receive script.
olivier pushed a commit to branch master
in repository xfce/xfwm4.
commit 91d60fbbb4d360fba484f4e89f8a8073d2e817f9
Author: Olivier Fourdan <fourdan at xfce.org>
Date: Sat Jan 10 00:10:24 2015 +0100
Fix reconfigure when toggling maximize state
Signed-off-by: Olivier Fourdan <fourdan at xfce.org>
---
src/moveresize.c | 32 ++++++++++++++------------------
1 file changed, 14 insertions(+), 18 deletions(-)
diff --git a/src/moveresize.c b/src/moveresize.c
index 3b59999..bd8cae6 100644
--- a/src/moveresize.c
+++ b/src/moveresize.c
@@ -70,6 +70,7 @@ struct _MoveResizeData
gint cancel_x, cancel_y;
gint cancel_w, cancel_h;
unsigned long cancel_flags;
+ unsigned long configure_flags;
guint cancel_workspace;
gint mx, my;
gint px, py; /* pointer relative position */
@@ -822,7 +823,6 @@ static eventFilterStatus
clientMoveEventFilter (XEvent * xevent, gpointer data)
{
static gboolean toggled_maximize = FALSE;
- unsigned long configure_flags;
ScreenInfo *screen_info;
DisplayInfo *display_info;
eventFilterStatus status = EVENT_FILTER_STOP;
@@ -840,7 +840,6 @@ clientMoveEventFilter (XEvent * xevent, gpointer data)
prev_y=c->y;
screen_info = c->screen_info;
display_info = screen_info->display_info;
- configure_flags = NO_CFG_FLAG;
/*
* Clients may choose to end the move operation,
@@ -898,16 +897,6 @@ clientMoveEventFilter (XEvent * xevent, gpointer data)
c->width = passdata->cancel_w;
c->height = passdata->cancel_h;
- if (screen_info->params->box_move)
- {
- clientDrawOutline (c);
- }
- else
- {
- wc.x = c->x;
- wc.y = c->y;
- clientConfigure (c, &wc, CWX | CWY, configure_flags);
- }
if (screen_info->current_ws != passdata->cancel_workspace)
{
workspaceSwitch (screen_info, passdata->cancel_workspace, c, FALSE, xevent->xkey.time);
@@ -915,14 +904,18 @@ clientMoveEventFilter (XEvent * xevent, gpointer data)
cancel_maximize_flags = passdata->cancel_flags & CLIENT_FLAG_MAXIMIZED;
if (!FLAG_TEST_AND_NOT(c->flags, cancel_maximize_flags, CLIENT_FLAG_MAXIMIZED))
{
- /* Toggle maximize on the differences between the current state and the canceled state */
+ /* Toggle maximize on the differences between the current state and the cancelled state */
cancel_maximize_flags ^= c->flags & CLIENT_FLAG_MAXIMIZED;
if (clientToggleMaximized (c, cancel_maximize_flags, FALSE))
{
- configure_flags = CFG_FORCE_REDRAW;
+ passdata->configure_flags = CFG_FORCE_REDRAW;
passdata->move_resized = TRUE;
}
}
+ if (screen_info->params->box_move)
+ {
+ clientDrawOutline (c);
+ }
}
else if (passdata->use_keys)
{
@@ -990,7 +983,7 @@ clientMoveEventFilter (XEvent * xevent, gpointer data)
passdata->my = CLAMP(frameExtentY (c) + frameExtentHeight (c) * yratio, frameExtentY (c), frameExtentY (c) + frameExtentHeight (c));
}
- configure_flags = CFG_FORCE_REDRAW;
+ passdata->configure_flags = CFG_FORCE_REDRAW;
}
}
else
@@ -1010,7 +1003,7 @@ clientMoveEventFilter (XEvent * xevent, gpointer data)
if ((clientConstrainPos (c, FALSE) & CLIENT_CONSTRAINED_TOP) &&
clientToggleMaximized (c, CLIENT_FLAG_MAXIMIZED, FALSE))
{
- configure_flags = CFG_FORCE_REDRAW;
+ passdata->configure_flags = CFG_FORCE_REDRAW;
toggled_maximize = FALSE;
passdata->move_resized = TRUE;
}
@@ -1044,7 +1037,9 @@ clientMoveEventFilter (XEvent * xevent, gpointer data)
wc.x = c->x;
wc.y = c->y;
- clientConfigure (c, &wc, changes, configure_flags);
+ clientConfigure (c, &wc, changes, passdata->configure_flags);
+ /* Configure applied, clear the flags */
+ passdata->configure_flags = NO_CFG_FLAG;
}
}
else if ((xevent->type == UnmapNotify) && (xevent->xunmap.window == c->window))
@@ -1113,6 +1108,7 @@ clientMove (Client * c, XEvent * ev)
passdata.cancel_w = c->width;
passdata.cancel_h = c->height;
passdata.cancel_flags = c->flags;
+ passdata.configure_flags = NO_CFG_FLAG;
passdata.cancel_workspace = c->win_workspace;
passdata.use_keys = FALSE;
passdata.grab = FALSE;
@@ -1210,7 +1206,7 @@ clientMove (Client * c, XEvent * ev)
wc.height = c->height;
changes |= CWWidth | CWHeight;
}
- clientConfigure (c, &wc, changes, NO_CFG_FLAG);
+ clientConfigure (c, &wc, changes, passdata.configure_flags);
if (!passdata.released)
{
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list