diff --git a/types/seat/wlr_seat.c b/types/seat/wlr_seat.c index 015a57b52..951c12b35 100644 --- a/types/seat/wlr_seat.c +++ b/types/seat/wlr_seat.c @@ -11,7 +11,7 @@ #include "types/wlr_seat.h" #include "util/global.h" -#define SEAT_VERSION 9 +#define SEAT_VERSION 10 static void seat_handle_get_pointer(struct wl_client *client, struct wl_resource *seat_resource, uint32_t id) { diff --git a/types/seat/wlr_seat_keyboard.c b/types/seat/wlr_seat_keyboard.c index 3227035e2..b8cee942d 100644 --- a/types/seat/wlr_seat_keyboard.c +++ b/types/seat/wlr_seat_keyboard.c @@ -78,6 +78,12 @@ void wlr_seat_keyboard_send_key(struct wlr_seat *wlr_seat, uint32_t time, continue; } + int version = wl_resource_get_version(resource); + if (state == WL_KEYBOARD_KEY_STATE_REPEATED && + version < WL_KEYBOARD_KEY_STATE_REPEATED_SINCE_VERSION) { + continue; + } + wl_keyboard_send_key(resource, serial, time, key, state); } }