diff options
author | Brian Ashworth <bosrsf04@gmail.com> | 2019-02-10 12:36:30 -0500 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2019-02-10 18:45:02 +0100 |
commit | 3952d4f4f3b76290101e0b82e7359d11e79058bb (patch) | |
tree | c61a7f8ef1d296345c8fba1c8d15db9183aaf0f3 /sway | |
parent | 605e515a9324c3e314939d21f1ea13b29881e100 (diff) | |
download | sway-3952d4f4f3b76290101e0b82e7359d11e79058bb.tar.xz |
input/keyboard: respect solo repeat_{rate,delay}
If `repeat_rate` or `repeat_delay` is set without the other being set,
the default was being used for both. This changes the logic to respect
the value given and use the default for the other when only one is set.
Diffstat (limited to 'sway')
-rw-r--r-- | sway/input/keyboard.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/sway/input/keyboard.c b/sway/input/keyboard.c index efd27f70..00fc6a13 100644 --- a/sway/input/keyboard.c +++ b/sway/input/keyboard.c @@ -549,13 +549,17 @@ void sway_keyboard_configure(struct sway_keyboard *keyboard) { wlr_keyboard_led_update(wlr_device->keyboard, leds); } - if (input_config && input_config->repeat_delay != INT_MIN - && input_config->repeat_rate != INT_MIN) { - wlr_keyboard_set_repeat_info(wlr_device->keyboard, - input_config->repeat_rate, input_config->repeat_delay); - } else { - wlr_keyboard_set_repeat_info(wlr_device->keyboard, 25, 600); + int repeat_rate = 25; + if (input_config && input_config->repeat_rate != INT_MIN) { + repeat_rate = input_config->repeat_rate; + } + int repeat_delay = 600; + if (input_config && input_config->repeat_delay != INT_MIN) { + repeat_delay = input_config->repeat_delay; } + wlr_keyboard_set_repeat_info(wlr_device->keyboard, repeat_rate, + repeat_delay); + xkb_context_unref(context); struct wlr_seat *seat = keyboard->seat_device->sway_seat->wlr_seat; wlr_seat_set_keyboard(seat, wlr_device); |