From 7f42665245d9708b16d512215d6d0d106d6881f3 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Tue, 20 Jul 2010 21:07:39 +0200 Subject: [PATCH] grabbing: make the retry loop much slower (waits up to half a second) This should fix a race condition where the Mod-key was not released in time when starting i3lock using a key combination. --- xcb.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/xcb.c b/xcb.c index f19d5c2..41b007a 100644 --- a/xcb.c +++ b/xcb.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -138,7 +139,7 @@ void grab_pointer_and_keyboard(xcb_connection_t *conn, xcb_screen_t *screen) { xcb_grab_keyboard_cookie_t kcookie; xcb_grab_keyboard_reply_t *kreply; - int tries = 1000; + int tries = 10000; while (tries-- > 0) { pcookie = xcb_grab_pointer( @@ -158,6 +159,9 @@ void grab_pointer_and_keyboard(xcb_connection_t *conn, xcb_screen_t *screen) { free(preply); break; } + + /* Make this quite a bit slower */ + usleep(50); } while (tries-- > 0) { @@ -175,6 +179,9 @@ void grab_pointer_and_keyboard(xcb_connection_t *conn, xcb_screen_t *screen) { free(kreply); break; } + + /* Make this quite a bit slower */ + usleep(50); } if (tries <= 0)