layer_shell: destroy layer_surface on assigned output destruction

According to the spec, the closed event should be sent when the surface
is no longer shown, because the output may have been destroyed or the
user may have asked for it to be removed. In such cases, the clients
should destroy the resource.

This fixes mako not being able to show notifications if the assigned
output was destroyed while a notificataion was still visible

Fixes: 188811f808 ("scene_graph: Port layer_shell")
This commit is contained in:
llyyr 2025-04-16 17:32:47 +05:30 committed by myrslint
parent 444ef5d839
commit a0a283ba59

View file

@ -221,7 +221,7 @@ static void handle_output_destroy(struct wl_listener *listener, void *data) {
wl_container_of(listener, layer, output_destroy); wl_container_of(listener, layer, output_destroy);
layer->output = NULL; layer->output = NULL;
wlr_scene_node_destroy(&layer->scene->tree->node); wlr_layer_surface_v1_destroy(layer->layer_surface);
} }
static void handle_node_destroy(struct wl_listener *listener, void *data) { static void handle_node_destroy(struct wl_listener *listener, void *data) {