git.lucas.co / cce-compositor
Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git

commitfb173bc1722639d09a9d2475f79ea9acfdb86cb6
parenta64dad70e1
authorIsaac Freund <[email protected]>
date2022-01-23 20:37
XdgPopup: remove commit listener on destroy if mapped

Since the destroy() function may be called by river while the popup is
mapped, we must handle this case.

 river/XdgPopup.zig | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/river/XdgPopup.zig b/river/XdgPopup.zig
index 95e504b..e08f7b0 100644
--- a/river/XdgPopup.zig
+++ b/river/XdgPopup.zig
@@ -96,6 +96,8 @@ pub fn destroy(xdg_popup: *XdgPopup) void {
     xdg_popup.new_popup.link.remove();
     xdg_popup.new_subsurface.link.remove();
 
+    if (xdg_popup.wlr_xdg_popup.base.mapped) xdg_popup.commit.link.remove();
+
     Subsurface.destroySubsurfaces(xdg_popup.wlr_xdg_popup.base.surface);
     XdgPopup.destroyPopups(xdg_popup.wlr_xdg_popup.base);