From 82e3bd95fcf3c428f629d090e42989f259f1bf76 Mon Sep 17 00:00:00 2001 From: Andrea Chiavazza Date: Tue, 25 Mar 2025 11:03:48 +0000 Subject: [PATCH] make the logic more rigorous --- dwl.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dwl.c b/dwl.c index 195c830..ead8ce6 100644 --- a/dwl.c +++ b/dwl.c @@ -1618,8 +1618,11 @@ keypress(struct wl_listener *listener, void *data) return; } - if (event->state != WL_KEYBOARD_KEY_STATE_PRESSED && consumed[event->keycode]) { - consumed[event->keycode] = false; + if (consumed[event->keycode]) { + if (event->state == WL_KEYBOARD_KEY_STATE_RELEASED) + consumed[event->keycode] = false; + else + fprintf(stderr, "inconsistent state for keycode %u\n", event->keycode); return; // don't pass the release event of a handled event to the client } wlr_seat_set_keyboard(seat, &group->wlr_group->keyboard);