From f29d8b55aec7c19fd12b81b39e6806d6b996fadc Mon Sep 17 00:00:00 2001
From: Drew DeVault <sir@cmpwn.com>
Date: Sat, 17 Mar 2018 15:07:48 -0400
Subject: Initial scaffolding of layer shell

---
 include/rootston/desktop.h          |  1 +
 include/wlr/types/wlr_layer_shell.h | 29 +++++++++++++++++++++++++++++
 2 files changed, 30 insertions(+)
 create mode 100644 include/wlr/types/wlr_layer_shell.h

(limited to 'include')

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
-- 
cgit v1.2.3