make the logic more rigorous

This commit is contained in:
Andrea Chiavazza 2025-03-25 11:03:48 +00:00
parent 609d89642c
commit 82e3bd95fc

7
dwl.c
View File

@ -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);