mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	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
 |