layer-shell: initial layer shell v1 implementation

This commit is contained in:
Sungjoon Moon 2025-10-22 16:13:00 +09:00
parent 0e946d5a4f
commit 8a11a66d87
8 changed files with 538 additions and 24 deletions

View file

@ -1,7 +1,41 @@
#ifndef CG_LAYER_SHELL_V1_H
#define CG_LAYER_SHELL_V1_H
#include <stdbool.h>
#include <wayland-server-core.h>
#include <wlr/types/wlr_layer_shell_v1.h>
#include <wlr/types/wlr_scene.h>
struct cg_output;
struct cg_layer_surface {
struct wl_listener map;
struct wl_listener unmap;
struct wl_listener surface_commit;
struct wl_listener node_destroy;
struct wl_listener new_popup;
bool mapped;
struct wlr_scene_tree *popups;
struct cg_output *output;
struct wl_list link; // cg_output::layer_surfaces
struct wlr_scene_layer_surface_v1 *scene;
struct wlr_scene_tree *tree;
struct wlr_layer_surface_v1 *layer_surface;
};
struct cg_layer_popup {
struct wlr_xdg_popup *wlr_popup;
struct wlr_scene_tree *scene;
struct cg_layer_surface *toplevel;
struct wl_listener destroy;
struct wl_listener new_popup;
struct wl_listener commit;
};
void handle_layer_shell_v1_surface_new(struct wl_listener *listener, void *data);