applied somwhat similiar patch like Alex Elide proposed
[slock.git] / 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);