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.h50
1 files changed, 16 insertions, 34 deletions
diff --git a/include/sway/layers.h b/include/sway/layers.h
index 457634c2..a7afb900 100644
--- a/include/sway/layers.h
+++ b/include/sway/layers.h
@@ -1,59 +1,41 @@
1#ifndef _SWAY_LAYERS_H 1#ifndef _SWAY_LAYERS_H
2#define _SWAY_LAYERS_H 2#define _SWAY_LAYERS_H
3#include <stdbool.h> 3#include <stdbool.h>
4#include <wlr/types/wlr_box.h> 4#include <wlr/types/wlr_compositor.h>
5#include <wlr/types/wlr_surface.h>
6#include <wlr/types/wlr_layer_shell_v1.h> 5#include <wlr/types/wlr_layer_shell_v1.h>
7 6
8enum layer_parent {
9 LAYER_PARENT_LAYER,
10 LAYER_PARENT_POPUP,
11};
12
13struct sway_layer_surface { 7struct sway_layer_surface {
14 struct wlr_layer_surface_v1 *layer_surface;
15 struct wl_list link;
16
17 struct wl_listener destroy;
18 struct wl_listener map; 8 struct wl_listener map;
19 struct wl_listener unmap; 9 struct wl_listener unmap;
20 struct wl_listener surface_commit; 10 struct wl_listener surface_commit;
21 struct wl_listener output_destroy; 11 struct wl_listener output_destroy;
12 struct wl_listener node_destroy;
22 struct wl_listener new_popup; 13 struct wl_listener new_popup;
23 struct wl_listener new_subsurface;
24 14
25 struct wlr_box geo; 15 bool mapped;
26 enum zwlr_layer_shell_v1_layer layer; 16
17 struct sway_output *output;
18 struct wlr_scene_layer_surface_v1 *scene;
19 struct wlr_scene_tree *tree;
20 struct wlr_scene_tree *popups;
21 struct wlr_layer_surface_v1 *layer_surface;
27}; 22};
28 23
29struct sway_layer_popup { 24struct sway_layer_popup {
30 struct wlr_xdg_popup *wlr_popup; 25 struct wlr_xdg_popup *wlr_popup;
31 enum layer_parent parent_type; 26 struct wlr_scene_tree *scene;
32 union { 27 struct sway_layer_surface *toplevel;
33 struct sway_layer_surface *parent_layer;
34 struct sway_layer_popup *parent_popup;
35 };
36 struct wl_listener map;
37 struct wl_listener unmap;
38 struct wl_listener destroy;
39 struct wl_listener commit;
40 struct wl_listener new_popup;
41};
42 28
43struct sway_layer_subsurface {
44 struct wlr_subsurface *wlr_subsurface;
45 struct sway_layer_surface *layer_surface;
46
47 struct wl_listener map;
48 struct wl_listener unmap;
49 struct wl_listener destroy; 29 struct wl_listener destroy;
30 struct wl_listener new_popup;
50 struct wl_listener commit; 31 struct wl_listener commit;
51}; 32};
52 33
53struct sway_output; 34struct sway_output;
54void arrange_layers(struct sway_output *output);
55 35
56struct sway_layer_surface *layer_from_wlr_layer_surface_v1( 36struct wlr_layer_surface_v1 *toplevel_layer_surface_from_surface(
57 struct wlr_layer_surface_v1 *layer_surface); 37 struct wlr_surface *surface);
38
39void arrange_layers(struct sway_output *output);
58 40
59#endif 41#endif