[gtk/matthiasc/for-master: 1/2] surface: Be more lenient for autohide




commit fd3e1c4ea54c8192e86324b9d444f2caf115b1b6
Author: Matthias Clasen <mclasen redhat com>
Date:   Tue Nov 3 15:26:47 2020 -0500

    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.

 gdk/gdksurface.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
---
diff --git a/gdk/gdksurface.c b/gdk/gdksurface.c
index f28c6ac4d1..00990ea40e 100644
--- a/gdk/gdksurface.c
+++ b/gdk/gdksurface.c
@@ -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);


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