aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2018-07-29 16:25:43 -0400
committerFurkan Sahin <furkan-dev@proton.me>2018-07-29 16:25:43 -0400
commitd64e437d5f9a7b20af776cf581d20184bd262038 (patch)
tree2ac9007d59e001f16c92dd43cb9e961fd043257f /include
parente970c850af067502133225574bbf628b0d0cfa65 (diff)
Implement key repeat for pressed key bindings
Each sway_keyboard is provided with a wayland timer event source. When a valid keypress binding has been found, a callback to handle_keyboard_repeat is set. Any key event will either clear the callback or (if the new key event is a valid keypress binding) delay the callback again.
Diffstat (limited to 'include')
-rw-r--r--include/sway/input/keyboard.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/sway/input/keyboard.h b/include/sway/input/keyboard.h
index 6713398e..660cdc9c 100644
--- a/include/sway/input/keyboard.h
+++ b/include/sway/input/keyboard.h
@@ -38,6 +38,11 @@ struct sway_keyboard {
struct sway_shortcut_state state_keysyms_raw;
struct sway_shortcut_state state_keycodes;
struct sway_binding *held_binding;
+
+ struct wl_event_source *key_repeat_source;
+ struct sway_binding *repeat_binding;
+ int key_repeat_initial_delay; // first key repeat event delay, in ms
+ int key_repeat_step_delay; // subsequent repeat delay, in ms
};
struct sway_keyboard *sway_keyboard_create(struct sway_seat *seat,