surface: Be more lenient for autohide

When an event happens on a non-grabbing popup that hangs off
a grabbing popup, don't trigger the autohide. This makes touch
text handles work inside the popover on page 3 of widget-factory.
This commit is contained in:
Matthias Clasen 2020-11-03 15:26:47 -05:00
parent 23c425618e
commit 75f96b83de

View File

@ -2695,7 +2695,10 @@ check_autohide (GdkEvent *event)
device = gdk_event_get_device (event);
if (gdk_device_grab_info (display, device, &grab_surface, NULL))
{
if (grab_surface != gdk_event_get_surface (event) &&
GdkSurface *event_surface = gdk_event_get_surface (event);
if (grab_surface != event_surface &&
grab_surface != event_surface->parent &&
grab_surface->autohide)
{
hide_popup_chain (grab_surface);