aboutsummaryrefslogtreecommitdiff
path: root/include/sway
diff options
context:
space:
mode:
Diffstat (limited to 'include/sway')
-rw-r--r--include/sway/config.h7
-rw-r--r--include/sway/input/cursor.h6
2 files changed, 13 insertions, 0 deletions
diff --git a/include/sway/config.h b/include/sway/config.h
index 473f723b..59f22ae2 100644
--- a/include/sway/config.h
+++ b/include/sway/config.h
@@ -181,6 +181,12 @@ struct seat_attachment_config {
// TODO other things are configured here for some reason
};
+enum seat_config_hide_cursor_when_typing {
+ HIDE_WHEN_TYPING_DEFAULT, // the default is currently disabled
+ HIDE_WHEN_TYPING_ENABLE,
+ HIDE_WHEN_TYPING_DISABLE,
+};
+
enum seat_config_allow_constrain {
CONSTRAIN_DEFAULT, // the default is currently enabled
CONSTRAIN_ENABLE,
@@ -216,6 +222,7 @@ struct seat_config {
int fallback; // -1 means not set
list_t *attachments; // list of seat_attachment configs
int hide_cursor_timeout;
+ enum seat_config_hide_cursor_when_typing hide_cursor_when_typing;
enum seat_config_allow_constrain allow_constrain;
enum seat_config_shortcuts_inhibit shortcuts_inhibit;
enum seat_keyboard_grouping keyboard_grouping;
diff --git a/include/sway/input/cursor.h b/include/sway/input/cursor.h
index 4c130faf..ca3c6f4b 100644
--- a/include/sway/input/cursor.h
+++ b/include/sway/input/cursor.h
@@ -6,6 +6,7 @@
#include <wlr/types/wlr_pointer_gestures_v1.h>
#include <wlr/types/wlr_surface.h>
#include "sway/input/seat.h"
+#include "config.h"
#define SWAY_CURSOR_PRESSED_BUTTONS_CAP 32
@@ -68,6 +69,10 @@ struct sway_cursor {
struct wl_event_source *hide_source;
bool hidden;
+ // This field is just a cache of the field in seat_config in order to avoid
+ // costly seat_config lookups on every keypress. HIDE_WHEN_TYPING_DEFAULT
+ // indicates that there is no cached value.
+ enum seat_config_hide_cursor_when_typing hide_when_typing;
size_t pressed_button_count;
};
@@ -94,6 +99,7 @@ void cursor_handle_activity(struct sway_cursor *cursor,
struct wlr_input_device *device);
void cursor_unhide(struct sway_cursor *cursor);
int cursor_get_timeout(struct sway_cursor *cursor);
+void cursor_notify_key_press(struct sway_cursor *cursor);
void dispatch_cursor_button(struct sway_cursor *cursor,
struct wlr_input_device *device, uint32_t time_msec, uint32_t button,