summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Ådahl <jadahl@gmail.com>2023-03-27 21:43:33 +0200
committerJonas Ådahl <jadahl@gmail.com>2023-04-13 21:02:03 +0200
commit50a37a7fc087e17f50004071af7603afc98a465c (patch)
tree9c06d08ea9ddbd1f4f5f23f2e724b49093b12f7e
parent697b99ee13ed31860fcf7f05bb3eba402e16612c (diff)
downloadmutter-50a37a7fc087e17f50004071af7603afc98a465c.tar.gz
wayland/xdg-shell: Dismiss instead of destroy invalid popup
Destroying is insufficient as it doesn't end any popup pointer grab, if the dismissed popup was the last. This would later hit an assert as the popup grab is assumed to always have at least one popup in its chain. Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2728 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2940>
-rw-r--r--src/wayland/meta-wayland-xdg-shell.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/wayland/meta-wayland-xdg-shell.c b/src/wayland/meta-wayland-xdg-shell.c
index 2fa1a0e1c..547f93222 100644
--- a/src/wayland/meta-wayland-xdg-shell.c
+++ b/src/wayland/meta-wayland-xdg-shell.c
@@ -1195,7 +1195,7 @@ dismiss_invalid_popup (MetaWaylandXdgPopup *xdg_popup)
top_xdg_popup = meta_wayland_xdg_popup_from_surface (top_popup_surface);
xdg_popup_send_popup_done (top_xdg_popup->resource);
- meta_wayland_popup_destroy (top_xdg_popup->popup);
+ meta_wayland_popup_dismiss (top_xdg_popup->popup);
if (top_xdg_popup == xdg_popup)
break;