mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-12-27 20:09:49 +01:00
effea557bb
Add a signal for wlr_surface destruction on the wlr_surface that compositors can listen to to remove the surface from their state. Implement a listener for this in the example wl_compositor to remove the surface from its internal list of surfaces. Destroy the surface in the compositor destroy_surface callback given when the surface resource was created. Add a reference to the surface resource to the wlr_surface so a compositor can find it in its list of resources upon wlr_resource destruction.
25 lines
608 B
C
25 lines
608 B
C
#ifndef _EXAMPLE_COMPOSITOR_H
|
|
#define _EXAMPLE_COMPOSITOR_H
|
|
#include <wayland-server.h>
|
|
#include <wlr/render.h>
|
|
|
|
struct wl_compositor_state {
|
|
struct wl_global *wl_global;
|
|
struct wl_list wl_resources;
|
|
struct wlr_renderer *renderer;
|
|
struct wl_list surfaces;
|
|
struct wl_listener destroy_surface_listener;
|
|
};
|
|
|
|
void wl_compositor_init(struct wl_display *display,
|
|
struct wl_compositor_state *state, struct wlr_renderer *renderer);
|
|
|
|
struct wl_shell_state {
|
|
struct wl_global *wl_global;
|
|
struct wl_list wl_resources;
|
|
};
|
|
|
|
void wl_shell_init(struct wl_display *display,
|
|
struct wl_shell_state *state);
|
|
|
|
#endif
|