[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