applied Martin Hurton's movemouse() patch
authorAnselm R Garbe <garbeam@gmail.com>
Mon, 18 Aug 2008 17:23:39 +0000 (18:23 +0100)
committerAnselm R Garbe <garbeam@gmail.com>
Mon, 18 Aug 2008 17:23:39 +0000 (18:23 +0100)
LICENSE
dwm.c

diff --git a/LICENSE b/LICENSE
index c6316d1..66c0f87 100644 (file)
--- a/LICENSE
+++ b/LICENSE
@@ -7,6 +7,7 @@ MIT/X Consortium License
 © 2007 Szabolcs Nagy <nszabolcs at gmail dot com>
 © 2007 Christof Musik <christof at sendfax dot de>
 © 2007-2008 Enno Gottox Boland <gottox at s01 dot de>
+© 2008 Martin Hurton <martin dot hurton at gmail dot com>
 
 Permission is hereby granted, free of charge, to any person obtaining a
 copy of this software and associated documentation files (the "Software"),
diff --git a/dwm.c b/dwm.c
index dc14bfd..293f9cf 100644 (file)
--- a/dwm.c
+++ b/dwm.c
@@ -961,18 +961,15 @@ movemouse(const Arg *arg) {
        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 @@ movemouse(const Arg *arg) {
                        break;
                }
        }
+       while(ev.type != ButtonRelease);
+       XUngrabPointer(dpy, CurrentTime);
 }
 
 Client *