slock

simple X display locker utility
git clone git://git.suckless.org/slock
Log | Files | Refs | README | LICENSE

commit 8a7a68c4c09cbc8b03cb2765ac83e99ca1cc808b
parent 6e53ce4582cc1cc338028c099108f6f225a7286d
Author: Anselm R. Garbe <arg@suckless.org>
Date:   Wed, 18 Oct 2006 18:44:19 +0200

applied somwhat similiar patch like Alex Elide proposed
Diffstat:
Mslock.c | 9++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/slock.c b/slock.c @@ -77,9 +77,12 @@ main(int argc, char **argv) { XDefineCursor(dpy, w, invisible); running = XGrabPointer(dpy, RootWindow(dpy, screen), False, ButtonPressMask | ButtonReleaseMask | PointerMotionMask, - GrabModeAsync, GrabModeSync, None, invisible, CurrentTime) == GrabSuccess - && XGrabKeyboard(dpy, RootWindow(dpy, screen), True, GrabModeAsync, - GrabModeAsync, CurrentTime) == GrabSuccess; + GrabModeAsync, GrabModeSync, None, invisible, CurrentTime) == GrabSuccess; + len = 10; + for(len = 10; len && (XGrabKeyboard(dpy, RootWindow(dpy, screen), True, GrabModeAsync, + GrabModeAsync, CurrentTime) != GrabSuccess); len--) + usleep(1000); + running = running && (len > 0); XMapRaised(dpy, w); XSync(dpy, False);