diff options
author | Brian Ashworth <bosrsf04@gmail.com> | 2019-08-15 00:59:39 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-08-20 11:14:56 +0900 |
commit | 384afc5cb5000374414eeaec8cbb667451fcce5b (patch) | |
tree | 3327591d7074585375addf18e5f013db057e93a5 /include | |
parent | Remove xdg-shell v6 support (diff) | |
download | sway-384afc5cb5000374414eeaec8cbb667451fcce5b.tar.gz sway-384afc5cb5000374414eeaec8cbb667451fcce5b.tar.zst sway-384afc5cb5000374414eeaec8cbb667451fcce5b.zip |
input/keyboard: send released only if pressed sent
This keeps track of whether surfaces received a key press event and
will only send a key release event if the pressed event was sent. This
also requires changing the keycodes that are sent via wl_keyboard_enter
to only include those that were previously sent. This makes it so
surfaces do not receive key release events for keys that they never
received a key press for and makes it so switching focus doesn't leak
keycodes that were consumed by bindings.
Diffstat (limited to 'include')
-rw-r--r-- | include/sway/input/keyboard.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/sway/input/keyboard.h b/include/sway/input/keyboard.h index 1ff63c94..4aa0d8f4 100644 --- a/include/sway/input/keyboard.h +++ b/include/sway/input/keyboard.h | |||
@@ -60,6 +60,7 @@ struct sway_keyboard { | |||
60 | struct sway_shortcut_state state_keysyms_translated; | 60 | struct sway_shortcut_state state_keysyms_translated; |
61 | struct sway_shortcut_state state_keysyms_raw; | 61 | struct sway_shortcut_state state_keysyms_raw; |
62 | struct sway_shortcut_state state_keycodes; | 62 | struct sway_shortcut_state state_keycodes; |
63 | struct sway_shortcut_state state_pressed_sent; | ||
63 | struct sway_binding *held_binding; | 64 | struct sway_binding *held_binding; |
64 | 65 | ||
65 | struct wl_event_source *key_repeat_source; | 66 | struct wl_event_source *key_repeat_source; |