From 8ec0e30fd76d528a999846496fc1ac2302424a53 Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Thu, 30 Sep 2021 16:45:14 +0200 Subject: Subsurface: remove commit listener in destroy() Currently if destroy() is called while a subsurface is mapped a dangling commit listener is left behind. This is obivously a problem, so check if the subsurface is mapped in destroy() and remove the listener if needed. --- river/Subsurface.zig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/river/Subsurface.zig b/river/Subsurface.zig index 0880163..bf7c341 100644 --- a/river/Subsurface.zig +++ b/river/Subsurface.zig @@ -95,6 +95,8 @@ pub fn destroy(subsurface: *Subsurface) void { subsurface.unmap.link.remove(); subsurface.new_subsurface.link.remove(); + if (subsurface.wlr_subsurface.mapped) subsurface.commit.link.remove(); + Subsurface.destroySubsurfaces(subsurface.wlr_subsurface.surface); subsurface.wlr_subsurface.data = 0; -- cgit v1.2.3