aboutsummaryrefslogtreecommitdiff
path: root/sway/input/cursor.c
diff options
context:
space:
mode:
authorTamir Zahavi-Brunner <tamir.z3@gmail.com>2020-09-07 01:44:13 +0300
committerSimon Ser <contact@emersion.fr>2020-10-30 09:59:54 +0100
commit96578aa91e9856bfb3e2d26fb7a625ff7c9b79e3 (patch)
treeac763cde133816f3bd8218eccbc352416ce88a5f /sway/input/cursor.c
parent4799cb09606ba8b3cc3969c24637b3c6c9eac485 (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.c26
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) {