]> git.mdlowis.com Git - proto/labwc.git/commitdiff
Revert "keyboard: include pressed modifiers in bound set"
authortokyo4j <hrak1529@gmail.com>
Sun, 22 Dec 2024 15:05:22 +0000 (00:05 +0900)
committerHiroaki Yamamoto <hrak1529@gmail.com>
Sun, 29 Dec 2024 07:27:34 +0000 (16:27 +0900)
This reverts commit 98bf316ee6632f62ec205904d74eabd8b3e9d15b.

include/input/key-state.h
src/input/key-state.c
src/input/keyboard.c

index 1b5b7ed22d875562f65944815a00745d6304cdf3..c53a4b10c4a940c9e3604c42cf85b44f4d9fdb91 100644 (file)
@@ -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);
index e5bfe3cafa7b70973d1ef6cfb0e5793adf2d620d..24a3f606c97c77c4cfcc015d71ef7030ea3344a2 100644 (file)
@@ -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
index 11dcb0516a9d0f5b31e901db540ac96790897cdc..d9769443a60ef87b3de65cdf9250e4987b396466 100644 (file)
@@ -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) {