[Xfce4-commits] <xfwm4:master> Avoid entering the move/resize loop twice (can happen when using NET_WM_MOVERESIZE client message).
Olivier Fourdan
noreply at xfce.org
Tue Jan 10 08:04:02 CET 2012
Updating branch refs/heads/master
to 24d90382b5ca6e5151c0eb6bb8309b8e18c62816 (commit)
from 6a50970d635aacbdd94e3e6cd01d62317f8315d5 (commit)
commit 24d90382b5ca6e5151c0eb6bb8309b8e18c62816
Author: Olivier Fourdan <fourdan at xfce.org>
Date: Tue Jan 10 08:00:24 2012 +0100
Avoid entering the move/resize loop twice (can happen when using NET_WM_MOVERESIZE client message).
src/moveresize.c | 36 ++++++++++++++++++++++--------------
1 files changed, 22 insertions(+), 14 deletions(-)
diff --git a/src/moveresize.c b/src/moveresize.c
index 3f69c1b..48e5428 100644
--- a/src/moveresize.c
+++ b/src/moveresize.c
@@ -962,18 +962,20 @@ clientMove (Client * c, XEvent * ev)
g_return_if_fail (c != NULL);
TRACE ("entering clientDoMove");
- TRACE ("moving client \"%s\" (0x%lx)", c->name, c->window);
- if (FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN))
+ if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_MOVING_RESIZING) ||
+ !FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_MOVE))
{
return;
}
- if (!FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_MOVE))
+ if (FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN))
{
return;
}
+ TRACE ("moving client \"%s\" (0x%lx)", c->name, c->window);
+
if (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED) &&
!FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED))
{
@@ -1508,18 +1510,8 @@ clientResize (Client * c, int handle, XEvent * ev)
g_return_if_fail (c != NULL);
TRACE ("entering clientResize");
- TRACE ("resizing client \"%s\" (0x%lx)", c->name, c->window);
-
- screen_info = c->screen_info;
- display_info = screen_info->display_info;
-
- if (FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN))
- {
- return;
- }
- if (FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED)
- && (screen_info->params->borderless_maximize))
+ if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_MOVING_RESIZING))
{
return;
}
@@ -1533,6 +1525,22 @@ clientResize (Client * c, int handle, XEvent * ev)
return;
}
+ if (FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN))
+ {
+ return;
+ }
+
+ screen_info = c->screen_info;
+ display_info = screen_info->display_info;
+
+ if (FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED)
+ && (screen_info->params->borderless_maximize))
+ {
+ return;
+ }
+
+ TRACE ("resizing client \"%s\" (0x%lx)", c->name, c->window);
+
passdata.c = c;
passdata.cancel_x = passdata.ox = c->x;
passdata.cancel_y = passdata.oy = c->y;
More information about the Xfce4-commits
mailing list