aboutsummaryrefslogtreecommitdiff
path: root/include/sway/input/seat.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/sway/input/seat.h')
-rw-r--r--include/sway/input/seat.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h
index 9c3028c5..49b9d09b 100644
--- a/include/sway/input/seat.h
+++ b/include/sway/input/seat.h
@@ -1,6 +1,7 @@
#ifndef _SWAY_INPUT_SEAT_H
#define _SWAY_INPUT_SEAT_H
+#include <wlr/types/wlr_keyboard_shortcuts_inhibit_v1.h>
#include <wlr/types/wlr_layer_shell_v1.h>
#include <wlr/types/wlr_seat.h>
#include <wlr/util/edges.h>
@@ -94,6 +95,8 @@ struct sway_seat {
struct wl_list devices; // sway_seat_device::link
struct wl_list keyboard_groups; // sway_keyboard_group::link
+ struct wl_list keyboard_shortcuts_inhibitors;
+ // sway_keyboard_shortcuts_inhibitor::link
struct wl_list link; // input_manager::seats
};
@@ -104,6 +107,14 @@ struct sway_pointer_constraint {
struct wl_listener destroy;
};
+struct sway_keyboard_shortcuts_inhibitor {
+ struct wlr_keyboard_shortcuts_inhibitor_v1 *inhibitor;
+
+ struct wl_listener destroy;
+
+ struct wl_list link; // sway_seat::keyboard_shortcuts_inhibitors
+};
+
struct sway_seat *seat_create(const char *seat_name);
void seat_destroy(struct sway_seat *seat);
@@ -269,4 +280,11 @@ void seatop_render(struct sway_seat *seat, struct sway_output *output,
bool seatop_allows_set_cursor(struct sway_seat *seat);
+/**
+ * Returns the keyboard shortcuts inhibitor that applies to the currently
+ * focused surface of a seat or NULL if none exists.
+ */
+struct sway_keyboard_shortcuts_inhibitor *
+keyboard_shortcuts_inhibitor_get_for_focused_surface(const struct sway_seat *seat);
+
#endif