xdg-shell/popup: Reset 'dismissed-by-client' state when remapping

A popup surface can be remapped multiple times using the same
wl_surface, if a new xdg_popup object is created. To properly handle
this, we need to reset the 'dismissed_by_client' boolean to false, as
otherwise we won't allow new buffer commits.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1993>
This commit is contained in:
Jonas Ådahl 2021-09-07 10:57:53 +02:00 committed by Marge Bot
parent 41e426af10
commit 8a43123765

View File

@ -1037,6 +1037,7 @@ finish_popup_setup (MetaWaylandXdgPopup *xdg_popup)
xdg_popup->setup.parent_surface = NULL; xdg_popup->setup.parent_surface = NULL;
xdg_popup->setup.grab_seat = NULL; xdg_popup->setup.grab_seat = NULL;
xdg_popup->dismissed_by_client = FALSE;
if (!meta_wayland_surface_get_window (parent_surface)) if (!meta_wayland_surface_get_window (parent_surface))
{ {