From: Michael Stapelberg Date: Tue, 19 May 2009 11:51:03 +0000 (+0200) Subject: Bugfix: keypress: Only use the lower 8 bits of the mask so that mouse buttons are... X-Git-Tag: 3.b~104 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=5038b3c592f1748f888d8344428936f98ae38041;p=i3%2Fi3 Bugfix: keypress: Only use the lower 8 bits of the mask so that mouse buttons are filtered out (Thanks Mirko) Sometimes, when the mouse button gets stuck, state contains the bit for BUTTON_MASK_1 (or other buttons). We filter them out to continue processing keys correctly. --- diff --git a/src/handlers.c b/src/handlers.c index c45be5f4..bc98c86f 100644 --- a/src/handlers.c +++ b/src/handlers.c @@ -111,6 +111,10 @@ int handle_key_press(void *ignored, xcb_connection_t *conn, xcb_key_press_event_ /* Remove the numlock bit, all other bits are modifiers we can bind to */ uint16_t state_filtered = event->state & ~(xcb_numlock_mask | XCB_MOD_MASK_LOCK); + /* Only use the lower 8 bits of the state (modifier masks) so that mouse + * button masks are filtered out */ + state_filtered &= 0xFF; + /* Find the binding */ Binding *bind; TAILQ_FOREACH(bind, &bindings, bindings)