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