diff -r 5be4e277ed7c -r 6f9cf8bcc4a7 dwm.c --- a/dwm.c Mon Aug 18 10:22:46 2008 +0100 +++ b/dwm.c Mon Aug 18 18:23:39 2008 +0100 @@ -961,18 +961,15 @@ if(!(c = sel)) return; restack(); - ocx = nx = c->x; - ocy = ny = c->y; + ocx = c->x; + ocy = c->y; if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync, None, cursor[CurMove], CurrentTime) != GrabSuccess) return; XQueryPointer(dpy, root, &dummy, &dummy, &x, &y, &di, &di, &dui); - for(;;) { + do { XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev); switch (ev.type) { - case ButtonRelease: - XUngrabPointer(dpy, CurrentTime); - return; case ConfigureRequest: case Expose: case MapRequest: @@ -1000,6 +997,8 @@ break; } } + while(ev.type != ButtonRelease); + XUngrabPointer(dpy, CurrentTime); } Client *