diff options
author | Tamir Zahavi-Brunner <tamir.z3@gmail.com> | 2020-09-07 01:44:13 +0300 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2020-10-30 09:59:54 +0100 |
commit | 96578aa91e9856bfb3e2d26fb7a625ff7c9b79e3 (patch) | |
tree | ac763cde133816f3bd8218eccbc352416ce88a5f /sway/input/cursor.c | |
parent | 4799cb09606ba8b3cc3969c24637b3c6c9eac485 (diff) |
hide_cursor: Add an option to hide when typing
Add an option for the `hide_cursor` command to hide the cursor when
typing, i.e. whenever a key is pressed.
Diffstat (limited to 'sway/input/cursor.c')
-rw-r--r-- | sway/input/cursor.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/sway/input/cursor.c b/sway/input/cursor.c index e47410a5..b168afc5 100644 --- a/sway/input/cursor.c +++ b/sway/input/cursor.c @@ -253,6 +253,32 @@ int cursor_get_timeout(struct sway_cursor *cursor) { return timeout; } +void cursor_notify_key_press(struct sway_cursor *cursor) { + if (cursor->hidden) { + return; + } + + if (cursor->hide_when_typing == HIDE_WHEN_TYPING_DEFAULT) { + // No cached value, need to lookup in the seat_config + const struct seat_config *seat_config = seat_get_config(cursor->seat); + if (!seat_config) { + seat_config = seat_get_config_by_name("*"); + if (!seat_config) { + return; + } + } + cursor->hide_when_typing = seat_config->hide_cursor_when_typing; + // The default is currently disabled + if (cursor->hide_when_typing == HIDE_WHEN_TYPING_DEFAULT) { + cursor->hide_when_typing = HIDE_WHEN_TYPING_DISABLE; + } + } + + if (cursor->hide_when_typing == HIDE_WHEN_TYPING_ENABLE) { + cursor_hide(cursor); + } +} + static enum sway_input_idle_source idle_source_from_device( struct wlr_input_device *device) { switch (device->type) { |