From 8b69c38cffabcad969a44b091ca7f2e8da1b5cdb Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Tue, 19 May 2020 11:08:49 +0200 Subject: [PATCH] Fix crash destroying output with layer surfaces --- src/Output.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Output.zig b/src/Output.zig index 7668928..67dedbf 100644 --- a/src/Output.zig +++ b/src/Output.zig @@ -502,14 +502,14 @@ fn handleDestroy(listener: ?*c.wl_listener, data: ?*c_void) callconv(.C) void { for (self.layers) |*layer, layer_idx| { while (layer.pop()) |node| { const layer_surface = &node.data; - c.wlr_layer_surface_v1_close(layer_surface.wlr_layer_surface); // We need to move the closing layer surface to the noop output - // since it is not immediately destoryed. This just a request + // since it may not be immediately destoryed. This just a request // to close which will trigger unmap and destroy events in // response, and the LayerSurface needs a valid output to // handle them. root.noop_output.layers[layer_idx].prepend(node); layer_surface.output = &root.noop_output; + c.wlr_layer_surface_v1_close(layer_surface.wlr_layer_surface); } }