From bd7a533dd675199791c44fb514e549cf1e86f6e0 Mon Sep 17 00:00:00 2001 From: tokyo4j Date: Mon, 23 Dec 2024 00:05:22 +0900 Subject: [PATCH] Revert "keyboard: include pressed modifiers in bound set" This reverts commit 98bf316ee6632f62ec205904d74eabd8b3e9d15b. --- include/input/key-state.h | 2 +- src/input/key-state.c | 17 ++--------------- src/input/keyboard.c | 3 +-- 3 files changed, 4 insertions(+), 18 deletions(-) diff --git a/include/input/key-state.h b/include/input/key-state.h index 1b5b7ed2..c53a4b10 100644 --- a/include/input/key-state.h +++ b/include/input/key-state.h @@ -19,7 +19,7 @@ uint32_t *key_state_pressed_sent_keycodes(void); int key_state_nr_pressed_sent_keycodes(void); -void key_state_set_pressed(uint32_t keycode, bool is_pressed, bool is_modifier); +void key_state_set_pressed(uint32_t keycode, bool is_pressed); void key_state_store_pressed_key_as_bound(uint32_t keycode); bool key_state_corresponding_press_event_was_bound(uint32_t keycode); void key_state_bound_key_remove(uint32_t keycode); diff --git a/src/input/key-state.c b/src/input/key-state.c index e5bfe3ca..24a3f606 100644 --- a/src/input/key-state.c +++ b/src/input/key-state.c @@ -8,7 +8,7 @@ #include "common/set.h" #include "input/key-state.h" -static struct lab_set pressed, pressed_mods, bound, pressed_sent; +static struct lab_set pressed, bound, pressed_sent; static void report(struct lab_set *key_set, const char *msg) @@ -54,16 +54,12 @@ key_state_nr_pressed_sent_keycodes(void) } void -key_state_set_pressed(uint32_t keycode, bool is_pressed, bool is_modifier) +key_state_set_pressed(uint32_t keycode, bool is_pressed) { if (is_pressed) { lab_set_add(&pressed, keycode); - if (is_modifier) { - lab_set_add(&pressed_mods, keycode); - } } else { lab_set_remove(&pressed, keycode); - lab_set_remove(&pressed_mods, keycode); } } @@ -71,15 +67,6 @@ void key_state_store_pressed_key_as_bound(uint32_t keycode) { lab_set_add(&bound, keycode); - /* - * Also store any pressed modifiers as bound. This prevents - * applications from seeing and handling the release event for - * a modifier key that was part of a keybinding (e.g. Firefox - * displays its menu bar for a lone Alt press + release). - */ - for (int i = 0; i < pressed_mods.size; ++i) { - lab_set_add(&bound, pressed_mods.values[i]); - } } bool diff --git a/src/input/keyboard.c b/src/input/keyboard.c index 11dcb051..d9769443 100644 --- a/src/input/keyboard.c +++ b/src/input/keyboard.c @@ -514,8 +514,7 @@ handle_compositor_keybindings(struct keyboard *keyboard, bool locked = seat->server->session_lock_manager->locked; key_state_set_pressed(event->keycode, - event->state == WL_KEYBOARD_KEY_STATE_PRESSED, - keyinfo.is_modifier); + event->state == WL_KEYBOARD_KEY_STATE_PRESSED); if (event->state == WL_KEYBOARD_KEY_STATE_RELEASED) { if (cur_keybind && cur_keybind->on_release) {