aboutsummaryrefslogtreecommitdiffstats
path: root/include/sway/layers.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/sway/layers.h')
-rw-r--r--include/sway/layers.h51
1 files changed, 16 insertions, 35 deletions
diff --git a/include/sway/layers.h b/include/sway/layers.h
index f8508493..fd6384e0 100644
--- a/include/sway/layers.h
+++ b/include/sway/layers.h
@@ -3,61 +3,42 @@
3#include <stdbool.h> 3#include <stdbool.h>
4#include <wlr/types/wlr_compositor.h> 4#include <wlr/types/wlr_compositor.h>
5#include <wlr/types/wlr_layer_shell_v1.h> 5#include <wlr/types/wlr_layer_shell_v1.h>
6 6#include "sway/tree/view.h"
7enum layer_parent {
8 LAYER_PARENT_LAYER,
9 LAYER_PARENT_POPUP,
10};
11 7
12struct sway_layer_surface { 8struct sway_layer_surface {
13 struct wlr_layer_surface_v1 *layer_surface;
14 struct wl_list link;
15
16 struct wl_listener destroy;
17 struct wl_listener map; 9 struct wl_listener map;
18 struct wl_listener unmap; 10 struct wl_listener unmap;
19 struct wl_listener surface_commit; 11 struct wl_listener surface_commit;
20 struct wl_listener output_destroy; 12 struct wl_listener output_destroy;
13 struct wl_listener node_destroy;
21 struct wl_listener new_popup; 14 struct wl_listener new_popup;
22 struct wl_listener new_subsurface;
23 15
24 struct wlr_box geo;
25 bool mapped; 16 bool mapped;
26 struct wlr_box extent;
27 enum zwlr_layer_shell_v1_layer layer;
28 17
29 struct wl_list subsurfaces; 18 struct wlr_scene_tree *popups;
19 struct sway_popup_desc desc;
20
21 struct sway_output *output;
22 struct wlr_scene_layer_surface_v1 *scene;
23 struct wlr_scene_tree *tree;
24 struct wlr_layer_surface_v1 *layer_surface;
30}; 25};
31 26
32struct sway_layer_popup { 27struct sway_layer_popup {
33 struct wlr_xdg_popup *wlr_popup; 28 struct wlr_xdg_popup *wlr_popup;
34 enum layer_parent parent_type; 29 struct wlr_scene_tree *scene;
35 union { 30 struct sway_layer_surface *toplevel;
36 struct sway_layer_surface *parent_layer;
37 struct sway_layer_popup *parent_popup;
38 };
39 struct wl_listener map;
40 struct wl_listener unmap;
41 struct wl_listener destroy;
42 struct wl_listener commit;
43 struct wl_listener new_popup;
44};
45 31
46struct sway_layer_subsurface {
47 struct wlr_subsurface *wlr_subsurface;
48 struct sway_layer_surface *layer_surface;
49 struct wl_list link;
50
51 struct wl_listener map;
52 struct wl_listener unmap;
53 struct wl_listener destroy; 32 struct wl_listener destroy;
33 struct wl_listener new_popup;
54 struct wl_listener commit; 34 struct wl_listener commit;
55}; 35};
56 36
57struct sway_output; 37struct sway_output;
58void arrange_layers(struct sway_output *output);
59 38
60struct sway_layer_surface *layer_from_wlr_layer_surface_v1( 39struct wlr_layer_surface_v1 *toplevel_layer_surface_from_surface(
61 struct wlr_layer_surface_v1 *layer_surface); 40 struct wlr_surface *surface);
41
42void arrange_layers(struct sway_output *output);
62 43
63#endif 44#endif