aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLibravatar Alexander Orzechowski <alex@ozal.ski>2024-01-18 10:04:26 -0500
committerLibravatar Kirill Primak <vyivel@eclair.cafe>2024-01-18 18:36:54 +0300
commit9a579666068d62b9354a39941e1ac8c1f4a58093 (patch)
tree79d5d36f27b43f1d68969242211a0e01395c6bfc /include
parentscene_graph: Port seatop_move_tiling indicators (diff)
downloadsway-9a579666068d62b9354a39941e1ac8c1f4a58093.tar.gz
sway-9a579666068d62b9354a39941e1ac8c1f4a58093.tar.zst
sway-9a579666068d62b9354a39941e1ac8c1f4a58093.zip
scene_graph: Port ext_session_v1
Diffstat (limited to 'include')
-rw-r--r--include/sway/output.h1
-rw-r--r--include/sway/server.h25
-rw-r--r--include/sway/tree/root.h1
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
29struct sway_transaction; 29struct sway_transaction;
30 30
31struct 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
31struct sway_server { 44struct 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);
174void handle_idle_inhibitor_v1(struct wl_listener *listener, void *data); 181void handle_idle_inhibitor_v1(struct wl_listener *listener, void *data);
175void handle_layer_shell_surface(struct wl_listener *listener, void *data); 182void handle_layer_shell_surface(struct wl_listener *listener, void *data);
176void sway_session_lock_init(void); 183void sway_session_lock_init(void);
184void sway_session_lock_add_output(struct sway_session_lock *lock,
185 struct sway_output *output);
186bool sway_session_lock_has_surface(struct sway_session_lock *lock,
187 struct wlr_surface *surface);
177void handle_xdg_shell_toplevel(struct wl_listener *listener, void *data); 188void handle_xdg_shell_toplevel(struct wl_listener *listener, void *data);
178#if HAVE_XWAYLAND 189#if HAVE_XWAYLAND
179void handle_xwayland_surface(struct wl_listener *listener, void *data); 190void 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