From 4a8c0c078445184a5d14725a0fb6df0cfc7ca5c9 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sat, 17 Mar 2018 19:17:28 -0400 Subject: [PATCH] Destroy layer surfaces when client is destroyed --- types/wlr_layer_shell.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/types/wlr_layer_shell.c b/types/wlr_layer_shell.c index 055578bd..709d3cbc 100644 --- a/types/wlr_layer_shell.c +++ b/types/wlr_layer_shell.c @@ -235,7 +235,10 @@ static struct zwlr_layer_shell_v1_interface layer_shell_impl = { static void wlr_layer_client_destroy(struct wl_resource *resource) { struct wlr_layer_client *client = layer_client_from_resource(resource); - // TODO: Destroy surfaces + struct wlr_layer_surface *surface, *tmp = NULL; + wl_list_for_each_safe(surface, tmp, &client->surfaces, link) { + layer_surface_destroy(surface); + } wl_list_remove(&client->link); free(client);