From 56deff41b6c2c6190894068994ba403978068bad Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Tue, 3 Apr 2018 12:50:05 -0400 Subject: Implement input inhibit in rootston --- include/rootston/desktop.h | 2 ++ include/rootston/seat.h | 9 +++++++++ 2 files changed, 11 insertions(+) (limited to 'include/rootston') diff --git a/include/rootston/desktop.h b/include/rootston/desktop.h index d07cb99b..f150147b 100644 --- a/include/rootston/desktop.h +++ b/include/rootston/desktop.h @@ -59,6 +59,8 @@ struct roots_desktop { struct wl_listener wl_shell_surface; struct wl_listener layer_shell_surface; struct wl_listener decoration_new; + struct wl_listener input_inhibit_activate; + struct wl_listener input_inhibit_deactivate; #ifdef WLR_HAS_XWAYLAND struct wlr_xwayland *xwayland; diff --git a/include/rootston/seat.h b/include/rootston/seat.h index 6f482723..d2ef90f3 100644 --- a/include/rootston/seat.h +++ b/include/rootston/seat.h @@ -19,6 +19,9 @@ struct roots_seat { // If the focused layer is set, views cannot receive keyboard focus struct wlr_layer_surface *focused_layer; + // If non-null, only this client can receive input events + struct wl_client *exclusive_client; + struct wl_list views; // roots_seat_view::link bool has_focus; @@ -125,4 +128,10 @@ void roots_drag_icon_update_position(struct roots_drag_icon *icon); void roots_drag_icon_damage_whole(struct roots_drag_icon *icon); +void roots_seat_set_exclusive_client(struct roots_seat *seat, + struct wl_client *client); + +bool roots_seat_allow_input(struct roots_seat *seat, + struct wl_resource *resource); + #endif -- cgit v1.2.3