applied somwhat similiar patch like Alex Elide proposed
authorAnselm R. Garbe <arg@suckless.org>
Wed, 18 Oct 2006 16:44:19 +0000 (18:44 +0200)
committerAnselm R. Garbe <arg@suckless.org>
Wed, 18 Oct 2006 16:44:19 +0000 (18:44 +0200)
slock.c

diff --git a/slock.c b/slock.c
index 72afd1e..164a464 100644 (file)
--- 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);