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



commit 8a4312376529bc45bd340b047cae58d9ac410c18
Author: Jonas Ã…dahl <jadahl gmail com>
Date:   Tue Sep 7 10:57:53 2021 +0200

    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>

 src/wayland/meta-wayland-xdg-shell.c | 1 +
 1 file changed, 1 insertion(+)
---
diff --git a/src/wayland/meta-wayland-xdg-shell.c b/src/wayland/meta-wayland-xdg-shell.c
index 3b04ece830..acd0913d11 100644
--- a/src/wayland/meta-wayland-xdg-shell.c
+++ b/src/wayland/meta-wayland-xdg-shell.c
@@ -1037,6 +1037,7 @@ finish_popup_setup (MetaWaylandXdgPopup *xdg_popup)
 
   xdg_popup->setup.parent_surface = NULL;
   xdg_popup->setup.grab_seat = NULL;
+  xdg_popup->dismissed_by_client = FALSE;
 
   if (!meta_wayland_surface_get_window (parent_surface))
     {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]