diff --git a/src/bindings.c b/src/bindings.c index 0a994f55..e9aec2c6 100644 --- a/src/bindings.c +++ b/src/bindings.c @@ -268,14 +268,12 @@ static Binding *get_binding(i3_event_state_mask_t state_filtered, bool is_releas const bool mods_match = modifiers_match(modifiers_mask, modifiers_state); DLOG("binding_keycode->modifiers = %d, modifiers_mask = %d, modifiers_state = %d, mods_match = %s\n", binding_keycode->modifiers, modifiers_mask, modifiers_state, (mods_match ? "yes" : "no")); - if (mods_match) { + if (mods_match || (bind->release == B_UPON_KEYRELEASE_IGNORE_MODS && is_release)) { found_keycode = true; break; } } - if (!found_keycode && - (bind->release != B_UPON_KEYRELEASE_IGNORE_MODS || - !is_release)) { + if (!found_keycode) { continue; } }