From 138a514c90a94096ba16a4c3b458105d5dc777c2 Mon Sep 17 00:00:00 2001 From: Consolatis <35009135+Consolatis@users.noreply.github.com> Date: Fri, 10 Jan 2025 11:55:45 +0100 Subject: [PATCH] seat: set repeat information for virtual keyboards Fixes: #2513 --- src/seat.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/seat.c b/src/seat.c index a1924f42..ebf2c770 100644 --- a/src/seat.c +++ b/src/seat.c @@ -305,14 +305,14 @@ new_pointer(struct seat *seat, struct wlr_input_device *dev) } static struct input * -new_keyboard(struct seat *seat, struct wlr_input_device *device, bool virtual) +new_keyboard(struct seat *seat, struct wlr_input_device *device, bool is_virtual) { struct wlr_keyboard *kb = wlr_keyboard_from_input_device(device); struct keyboard *keyboard = znew(*keyboard); keyboard->base.wlr_input_device = device; keyboard->wlr_keyboard = kb; - keyboard->is_virtual = virtual; + keyboard->is_virtual = is_virtual; if (!seat->keyboard_group->keyboard.keymap) { wlr_log(WLR_ERROR, "cannot set keymap"); @@ -329,7 +329,10 @@ new_keyboard(struct seat *seat, struct wlr_input_device *device, bool virtual) */ keyboard_set_numlock(kb); - if (!virtual) { + if (is_virtual) { + /* key repeat information is usually synchronized via the keyboard group */ + wlr_keyboard_set_repeat_info(kb, rc.repeat_rate, rc.repeat_delay); + } else { wlr_keyboard_group_add_keyboard(seat->keyboard_group, kb); }