applied Martin Hurton's movemouse() patch
02a8ca95
2 file(s) · +6 −6
| 7 | 7 | © 2007 Szabolcs Nagy <nszabolcs at gmail dot com> |
|
| 8 | 8 | © 2007 Christof Musik <christof at sendfax dot de> |
|
| 9 | 9 | © 2007-2008 Enno Gottox Boland <gottox at s01 dot de> |
|
| 10 | + | © 2008 Martin Hurton <martin dot hurton at gmail dot com> |
|
| 10 | 11 | ||
| 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining a |
|
| 12 | 13 | copy of this software and associated documentation files (the "Software"), |
| 961 | 961 | if(!(c = sel)) |
|
| 962 | 962 | return; |
|
| 963 | 963 | restack(); |
|
| 964 | - | ocx = nx = c->x; |
|
| 965 | - | ocy = ny = c->y; |
|
| 964 | + | ocx = c->x; |
|
| 965 | + | ocy = c->y; |
|
| 966 | 966 | if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync, |
|
| 967 | 967 | None, cursor[CurMove], CurrentTime) != GrabSuccess) |
|
| 968 | 968 | return; |
|
| 969 | 969 | XQueryPointer(dpy, root, &dummy, &dummy, &x, &y, &di, &di, &dui); |
|
| 970 | - | for(;;) { |
|
| 970 | + | do { |
|
| 971 | 971 | XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev); |
|
| 972 | 972 | switch (ev.type) { |
|
| 973 | - | case ButtonRelease: |
|
| 974 | - | XUngrabPointer(dpy, CurrentTime); |
|
| 975 | - | return; |
|
| 976 | 973 | case ConfigureRequest: |
|
| 977 | 974 | case Expose: |
|
| 978 | 975 | case MapRequest: |
|
| 1000 | 997 | break; |
|
| 1001 | 998 | } |
|
| 1002 | 999 | } |
|
| 1000 | + | while(ev.type != ButtonRelease); |
|
| 1001 | + | XUngrabPointer(dpy, CurrentTime); |
|
| 1003 | 1002 | } |
|
| 1004 | 1003 | ||
| 1005 | 1004 | Client * |
|