|
|
@ -961,18 +961,15 @@ movemouse(const Arg *arg) {
|
|
|
|
if(!(c = sel))
|
|
|
|
if(!(c = sel))
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
restack();
|
|
|
|
restack();
|
|
|
|
ocx = nx = c->x;
|
|
|
|
ocx = c->x;
|
|
|
|
ocy = ny = c->y;
|
|
|
|
ocy = c->y;
|
|
|
|
if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
|
|
|
|
if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
|
|
|
|
None, cursor[CurMove], CurrentTime) != GrabSuccess)
|
|
|
|
None, cursor[CurMove], CurrentTime) != GrabSuccess)
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
XQueryPointer(dpy, root, &dummy, &dummy, &x, &y, &di, &di, &dui);
|
|
|
|
XQueryPointer(dpy, root, &dummy, &dummy, &x, &y, &di, &di, &dui);
|
|
|
|
for(;;) {
|
|
|
|
do {
|
|
|
|
XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev);
|
|
|
|
XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev);
|
|
|
|
switch (ev.type) {
|
|
|
|
switch (ev.type) {
|
|
|
|
case ButtonRelease:
|
|
|
|
|
|
|
|
XUngrabPointer(dpy, CurrentTime);
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
case ConfigureRequest:
|
|
|
|
case ConfigureRequest:
|
|
|
|
case Expose:
|
|
|
|
case Expose:
|
|
|
|
case MapRequest:
|
|
|
|
case MapRequest:
|
|
|
@ -1000,6 +997,8 @@ movemouse(const Arg *arg) {
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
while(ev.type != ButtonRelease);
|
|
|
|
|
|
|
|
XUngrabPointer(dpy, CurrentTime);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Client *
|
|
|
|
Client *
|
|
|
|