aboutsummaryrefslogtreecommitdiff
path: root/backend/x11/input_device.c
diff options
context:
space:
mode:
authortomKPZ <tomKPZ@gmail.com>2021-04-19 23:10:37 -0700
committerSimon Ser <contact@emersion.fr>2021-04-20 08:19:48 +0200
commit7c9b61b18c3041f3ccc883d7814175d9983dc74e (patch)
treef35096ea584b99afa36c3a37d87dd11bd4023071 /backend/x11/input_device.c
parente8df7c367acad38ae7fd3ffcb7cbce1b6b3a3153 (diff)
Fix stuck keys on X11 backend
Diffstat (limited to 'backend/x11/input_device.c')
-rw-r--r--backend/x11/input_device.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/backend/x11/input_device.c b/backend/x11/input_device.c
index a085b046..f4911777 100644
--- a/backend/x11/input_device.c
+++ b/backend/x11/input_device.c
@@ -123,6 +123,10 @@ void handle_x11_xinput_event(struct wlr_x11_backend *x11,
xcb_input_key_press_event_t *ev =
(xcb_input_key_press_event_t *)event;
+ if (ev->flags & XCB_INPUT_KEY_EVENT_FLAGS_KEY_REPEAT) {
+ return;
+ }
+
wlr_keyboard_notify_modifiers(&x11->keyboard, ev->mods.base,
ev->mods.latched, ev->mods.locked, ev->mods.effective);
send_key_event(x11, ev->detail - 8, WL_KEYBOARD_KEY_STATE_PRESSED, ev->time);