978 ocy = ny = c->y; |
978 ocy = ny = c->y; |
979 if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync, |
979 if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync, |
980 None, cursor[CurMove], CurrentTime) != GrabSuccess) |
980 None, cursor[CurMove], CurrentTime) != GrabSuccess) |
981 return; |
981 return; |
982 XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui); |
982 XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui); |
983 if(x1 < c->x || x1 > c->x + c->w || y1 < c->y || y1 > c->y + c->h) { |
|
984 XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, 0, 0); |
|
985 x1 = c->x + 1; |
|
986 y1 = c->y + 1; |
|
987 } |
|
988 for(;;) { |
983 for(;;) { |
989 XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev); |
984 XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev); |
990 switch (ev.type) { |
985 switch (ev.type) { |
991 case ButtonRelease: |
986 case ButtonRelease: |
992 XUngrabPointer(dpy, CurrentTime); |
987 XUngrabPointer(dpy, CurrentTime); |