diff options
| author | Isaac Freund <mail@isaacfreund.com> | 2022-01-23 20:37:37 +0100 |
|---|---|---|
| committer | Isaac Freund <mail@isaacfreund.com> | 2022-01-23 20:37:37 +0100 |
| commit | b716e262cd6ddf53638105261b786ea32a9acc23 (patch) | |
| tree | 126310894554e633430895de372c463eb93e5169 | |
| parent | 20ca8a2051c2a03c261e2ce4ae3039e3374e90b4 (diff) | |
| download | river-b716e262cd6ddf53638105261b786ea32a9acc23.tar.gz river-b716e262cd6ddf53638105261b786ea32a9acc23.tar.xz | |
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.
| -rw-r--r-- | river/XdgPopup.zig | 2 |
1 files changed, 2 insertions, 0 deletions
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); |
