aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/rootston/desktop.h1
-rw-r--r--include/wlr/types/wlr_layer_shell.h29
2 files changed, 30 insertions, 0 deletions
diff --git a/include/rootston/desktop.h b/include/rootston/desktop.h
index 5986c96f..5ff9f5e2 100644
--- a/include/rootston/desktop.h
+++ b/include/rootston/desktop.h
@@ -48,6 +48,7 @@ struct roots_desktop {
struct wlr_idle *idle;
struct wlr_idle_inhibit_manager_v1 *idle_inhibit;
struct wlr_linux_dmabuf *linux_dmabuf;
+ struct wlr_layer_shell *layer_shell;
struct wl_listener new_output;
struct wl_listener layout_change;
diff --git a/include/wlr/types/wlr_layer_shell.h b/include/wlr/types/wlr_layer_shell.h
new file mode 100644
index 00000000..fbea1334
--- /dev/null
+++ b/include/wlr/types/wlr_layer_shell.h
@@ -0,0 +1,29 @@
+#ifndef WLR_TYPES_WLR_LAYER_SHELL_H
+#define WLR_TYPES_WLR_LAYER_SHELL_H
+
+struct wlr_layer_shell {
+ struct wl_global *wl_global;
+ struct wl_list clients;
+
+ struct wl_listener display_destroy;
+
+ struct {
+ struct wl_signal new_surface;
+ } events;
+
+ void *data;
+};
+
+struct wlr_layer_client {
+ struct wlr_layer_shell *shell;
+ struct wl_resource *resource;
+ struct wl_client *client;
+ struct wl_list surfaces;
+
+ struct wl_list link; // wlr_layer_shell::clients
+};
+
+struct wlr_layer_shell *wlr_layer_shell_create(struct wl_display *display);
+void wlr_layer_shell_destroy(struct wlr_layer_shell *layer_shell);
+
+#endif