diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/sway/output.h | 1 | ||||
-rw-r--r-- | include/sway/server.h | 25 | ||||
-rw-r--r-- | include/sway/tree/root.h | 1 |
3 files changed, 20 insertions, 7 deletions
diff --git a/include/sway/output.h b/include/sway/output.h index 28240819..8405f78d 100644 --- a/include/sway/output.h +++ b/include/sway/output.h | |||
@@ -24,6 +24,7 @@ struct sway_output { | |||
24 | struct { | 24 | struct { |
25 | struct wlr_scene_tree *tiling; | 25 | struct wlr_scene_tree *tiling; |
26 | struct wlr_scene_tree *fullscreen; | 26 | struct wlr_scene_tree *fullscreen; |
27 | struct wlr_scene_tree *session_lock; | ||
27 | } layers; | 28 | } layers; |
28 | 29 | ||
29 | // when a container is fullscreen, in case the fullscreen surface is | 30 | // when a container is fullscreen, in case the fullscreen surface is |
diff --git a/include/sway/server.h b/include/sway/server.h index f3d25980..33ffbf09 100644 --- a/include/sway/server.h +++ b/include/sway/server.h | |||
@@ -28,6 +28,19 @@ | |||
28 | 28 | ||
29 | struct sway_transaction; | 29 | struct sway_transaction; |
30 | 30 | ||
31 | struct sway_session_lock { | ||
32 | struct wlr_session_lock_v1 *lock; | ||
33 | struct wlr_surface *focused; | ||
34 | bool abandoned; | ||
35 | |||
36 | struct wl_list outputs; // struct sway_session_lock_output | ||
37 | |||
38 | // invalid if the session is abandoned | ||
39 | struct wl_listener new_surface; | ||
40 | struct wl_listener unlock; | ||
41 | struct wl_listener destroy; | ||
42 | }; | ||
43 | |||
31 | struct sway_server { | 44 | struct sway_server { |
32 | struct wl_display *wl_display; | 45 | struct wl_display *wl_display; |
33 | struct wl_event_loop *wl_event_loop; | 46 | struct wl_event_loop *wl_event_loop; |
@@ -92,15 +105,9 @@ struct sway_server { | |||
92 | struct wl_listener gamma_control_set_gamma; | 105 | struct wl_listener gamma_control_set_gamma; |
93 | 106 | ||
94 | struct { | 107 | struct { |
95 | bool locked; | 108 | struct sway_session_lock *lock; |
96 | struct wlr_session_lock_manager_v1 *manager; | 109 | struct wlr_session_lock_manager_v1 *manager; |
97 | 110 | ||
98 | struct wlr_session_lock_v1 *lock; | ||
99 | struct wlr_surface *focused; | ||
100 | struct wl_listener lock_new_surface; | ||
101 | struct wl_listener lock_unlock; | ||
102 | struct wl_listener lock_destroy; | ||
103 | |||
104 | struct wl_listener new_lock; | 111 | struct wl_listener new_lock; |
105 | struct wl_listener manager_destroy; | 112 | struct wl_listener manager_destroy; |
106 | } session_lock; | 113 | } session_lock; |
@@ -174,6 +181,10 @@ void handle_new_output(struct wl_listener *listener, void *data); | |||
174 | void handle_idle_inhibitor_v1(struct wl_listener *listener, void *data); | 181 | void handle_idle_inhibitor_v1(struct wl_listener *listener, void *data); |
175 | void handle_layer_shell_surface(struct wl_listener *listener, void *data); | 182 | void handle_layer_shell_surface(struct wl_listener *listener, void *data); |
176 | void sway_session_lock_init(void); | 183 | void sway_session_lock_init(void); |
184 | void sway_session_lock_add_output(struct sway_session_lock *lock, | ||
185 | struct sway_output *output); | ||
186 | bool sway_session_lock_has_surface(struct sway_session_lock *lock, | ||
187 | struct wlr_surface *surface); | ||
177 | void handle_xdg_shell_toplevel(struct wl_listener *listener, void *data); | 188 | void handle_xdg_shell_toplevel(struct wl_listener *listener, void *data); |
178 | #if HAVE_XWAYLAND | 189 | #if HAVE_XWAYLAND |
179 | void handle_xwayland_surface(struct wl_listener *listener, void *data); | 190 | void handle_xwayland_surface(struct wl_listener *listener, void *data); |
diff --git a/include/sway/tree/root.h b/include/sway/tree/root.h index 4b48a651..0aae8938 100644 --- a/include/sway/tree/root.h +++ b/include/sway/tree/root.h | |||
@@ -41,6 +41,7 @@ struct sway_root { | |||
41 | struct wlr_scene_tree *fullscreen; | 41 | struct wlr_scene_tree *fullscreen; |
42 | struct wlr_scene_tree *fullscreen_global; | 42 | struct wlr_scene_tree *fullscreen_global; |
43 | struct wlr_scene_tree *seat; | 43 | struct wlr_scene_tree *seat; |
44 | struct wlr_scene_tree *session_lock; | ||
44 | } layers; | 45 | } layers; |
45 | 46 | ||
46 | #if HAVE_XWAYLAND | 47 | #if HAVE_XWAYLAND |