[mutter] wayland: Handle parent-less popup commits



commit 417757eab8540d3e0330a1ed76a09e99433a4c76
Author: Jonas Ådahl <jadahl gmail com>
Date:   Fri Sep 16 15:07:22 2016 +0800

    wayland: Handle parent-less popup commits
    
    A xdg_popup, when active, always has a parent surface. However, a popup
    created may immediately become invalid, for example when it is not
    granted a grab, in which case it won't be assigned a parent since it
    will never be mapped.
    
    This case needs to be handled elsewhere, as one cannot assume a
    MetaWaylandXdgPoup that is processed (via wl_surface commit handling
    etc) will have a parent_surface.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=771495

 src/wayland/meta-wayland-xdg-shell.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
---
diff --git a/src/wayland/meta-wayland-xdg-shell.c b/src/wayland/meta-wayland-xdg-shell.c
index 3290683..e9223a9 100644
--- a/src/wayland/meta-wayland-xdg-shell.c
+++ b/src/wayland/meta-wayland-xdg-shell.c
@@ -856,7 +856,10 @@ xdg_popup_role_get_toplevel (MetaWaylandSurfaceRole *surface_role)
 {
   MetaWaylandXdgPopup *xdg_popup = META_WAYLAND_XDG_POPUP (surface_role);
 
-  return meta_wayland_surface_get_toplevel (xdg_popup->parent_surface);
+  if (xdg_popup->parent_surface)
+    return meta_wayland_surface_get_toplevel (xdg_popup->parent_surface);
+  else
+    return NULL;
 }
 
 static void


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