diff --git a/src/client.c b/src/client.c index 1b47cad697d373a8e4ee5de009ad84c062ae7cf5..d6127c5d3537e10f7d9e6d5a0d225c476eabfbcc 100644 --- a/src/client.c +++ b/src/client.c @@ -3120,8 +3120,13 @@ static GtkToXEventFilterStatus clientMove_event_filter(XEvent * xevent, gpointer int frame_x, frame_y, frame_height, frame_width; int frame_top, frame_left, frame_right, frame_bottom; - while(XCheckTypedEvent(dpy, MotionNotify, xevent)); - + while(XCheckMaskEvent(dpy, ButtonMotionMask | PointerMotionMask | PointerMotionHintMask, xevent)); + + if (xevent->type == ButtonRelease) + { + moving = FALSE; + } + if(!passdata->grab && params.box_move) { gdk_x11_grab_server(); @@ -3241,6 +3246,7 @@ static GtkToXEventFilterStatus clientMove_event_filter(XEvent * xevent, gpointer { status = XEV_FILTER_CONTINUE; } + DBG("leaving clientMove_event_filter\n"); if(!moving) @@ -3464,8 +3470,13 @@ static GtkToXEventFilterStatus clientResize_event_filter(XEvent * xevent, gpoint } else if(xevent->type == MotionNotify) { - while(XCheckTypedEvent(dpy, MotionNotify, xevent)); - + while(XCheckMaskEvent(dpy, ButtonMotionMask | PointerMotionMask | PointerMotionHintMask, xevent)); + + if (xevent->type == ButtonRelease) + { + resizing = FALSE; + } + if(!passdata->grab && params.box_resize) { gdk_x11_grab_server(); @@ -3574,6 +3585,7 @@ static GtkToXEventFilterStatus clientResize_event_filter(XEvent * xevent, gpoint { status = XEV_FILTER_CONTINUE; } + DBG("leaving clientResize_event_filter\n"); if(!resizing)