mirror of
https://github.com/brl/mutter.git
synced 2025-06-24 14:09:25 +00:00
wayland: Unmap popup windows when a popup chain is dismissed
When dismissing a popup grab, always unmap every popup window in the chain, instead of relying on the surfaces and xdg_popups being destroyed. https://bugzilla.gnome.org/show_bug.cgi?id=744452
This commit is contained in:
@ -581,7 +581,7 @@ meta_wayland_pointer_end_popup_grab (MetaWaylandPointer *pointer)
|
||||
meta_wayland_popup_grab_destroy (popup_grab);
|
||||
}
|
||||
|
||||
gboolean
|
||||
MetaWaylandPopup *
|
||||
meta_wayland_pointer_start_popup_grab (MetaWaylandPointer *pointer,
|
||||
MetaWaylandSurface *surface)
|
||||
{
|
||||
@ -589,7 +589,7 @@ meta_wayland_pointer_start_popup_grab (MetaWaylandPointer *pointer,
|
||||
|
||||
if (pointer->grab != &pointer->default_grab &&
|
||||
!meta_wayland_pointer_grab_is_popup_grab (pointer->grab))
|
||||
return FALSE;
|
||||
return NULL;
|
||||
|
||||
if (pointer->grab == &pointer->default_grab)
|
||||
{
|
||||
@ -601,10 +601,7 @@ meta_wayland_pointer_start_popup_grab (MetaWaylandPointer *pointer,
|
||||
else
|
||||
grab = (MetaWaylandPopupGrab*)pointer->grab;
|
||||
|
||||
if (meta_wayland_popup_create (surface, grab) == NULL)
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
return meta_wayland_popup_create (surface, grab);
|
||||
}
|
||||
|
||||
void
|
||||
|
Reference in New Issue
Block a user