diff options
author | okan | 2008-06-12 18:32:06 +0000 |
---|---|---|
committer | okan | 2008-06-12 18:32:06 +0000 |
commit | 6c0b80a21fe472dddaa1224b1f775b9dfdb161c7 (patch) | |
tree | e285fc1205faea6c8fd9a2f5e8c101ead14a4786 /grab.c | |
parent | ec170a7d8ceafeac794552f321d8f7d94b8be6a7 (diff) | |
download | cwm-6c0b80a21fe472dddaa1224b1f775b9dfdb161c7.tar.gz |
instead of forcing the ptr in the middle everytime, be more 'calm'; keep
the ptr still unless it moves out-of-bounds, then just follow the edge.
brought up by todd@
ok oga@
Diffstat (limited to 'grab.c')
-rw-r--r-- | grab.c | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $Id: grab.c,v 1.15 2008/06/12 05:10:24 okan Exp $ + * $Id: grab.c,v 1.16 2008/06/12 18:32:06 okan Exp $ */ #include "headers.h" @@ -100,9 +100,14 @@ grab_sweep(struct client_ctx *cc) XUnmapWindow(X_Dpy, sc->menuwin); XReparentWindow(X_Dpy, sc->menuwin, sc->rootwin, 0, 0); xu_ptr_ungrab(); - cc->ptr.x = -1; - cc->ptr.y = -1; + + /* Make sure the pointer stays within the window. */ + if (cc->ptr.x > cc->geom.width) + cc->ptr.x = cc->geom.width - cc->bwidth; + if (cc->ptr.y > cc->geom.height) + cc->ptr.y = cc->geom.height - cc->bwidth; client_ptrwarp(cc); + client_do_shape(cc); return; } |