diff options
author | Jonas Ådahl <jadahl@gmail.com> | 2023-03-27 21:43:33 +0200 |
---|---|---|
committer | Jonas Ådahl <jadahl@gmail.com> | 2023-04-13 21:02:03 +0200 |
commit | 50a37a7fc087e17f50004071af7603afc98a465c (patch) | |
tree | 9c06d08ea9ddbd1f4f5f23f2e724b49093b12f7e | |
parent | 697b99ee13ed31860fcf7f05bb3eba402e16612c (diff) | |
download | mutter-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.c | 2 |
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; |