]> git.sur5r.net Git - i3/i3/commitdiff
Skip FocusIn events with mode == NOTIFY_MODE_GRAB or NOTIFY_MODE_UNGRAB
authorMichael Stapelberg <michael@stapelberg.de>
Wed, 30 Mar 2011 21:00:48 +0000 (23:00 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Wed, 30 Mar 2011 21:00:48 +0000 (23:00 +0200)
According to the Xlib Programming Manual section 10.7.2 [1], these events are
generated when keyboard grabs activate/deactivate, while we are only interested
in focus changes which are done by other programs independend from the
keyboard.

[1] http://tronche.com/gui/x/xlib/events/input-focus/grab.html

src/handlers.c

index f1c6128b750aa42cffc2bb91978c5cd17403b479..ac0fd87ac5e57b477d308526fdf2e33103bd9300 100644 (file)
@@ -896,6 +896,12 @@ static int handle_focus_in(xcb_focus_in_event_t *event) {
         return 1;
     DLOG("That is con %p / %s\n", con, con->name);
 
+    if (event->mode == XCB_NOTIFY_MODE_GRAB ||
+        event->mode == XCB_NOTIFY_MODE_UNGRAB) {
+        DLOG("FocusIn event for grab/ungrab, ignoring\n");
+        return 1;
+    }
+
     if (event->detail == XCB_NOTIFY_DETAIL_POINTER) {
         DLOG("notify detail is pointer, ignoring this event\n");
         return 1;