[gtk/wip/carlosg/stuck-pointer-focus] gtkmain: Do not try to coalesce/ignore crossing events



commit fa7f6ad910774a57f028093ef0766a7905cb2136
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed Apr 1 00:32:57 2020 +0200

    gtkmain: Do not try to coalesce/ignore crossing events
    
    Under grabbing circumstances we used to get several crossing events,
    some corresponding to the grab itself and some corresponding to
    pointer motion.
    
    The backends now do a better job at keeping those simple, which
    means we sit listening for events that don't actually arrive. This
    triggers pointer focus issues when dragging windows or opening
    grabbing popups.
    
    Actually obey those events, they will be the only ones we get now.

 gtk/gtkmain.c | 13 -------------
 1 file changed, 13 deletions(-)
---
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c
index ff196e84b5..0b99a0030f 100644
--- a/gtk/gtkmain.c
+++ b/gtk/gtkmain.c
@@ -1482,15 +1482,6 @@ handle_pointing_event (GdkEvent *event)
   switch ((guint) type)
     {
     case GDK_LEAVE_NOTIFY:
-      if (gdk_crossing_event_get_mode (event) == GDK_CROSSING_NORMAL &&
-          gtk_window_lookup_pointer_focus_implicit_grab (toplevel, device, NULL))
-        {
-          /* We have an implicit grab, wait for the corresponding
-           * GDK_CROSSING_UNGRAB.
-           */
-          break;
-        }
-      G_GNUC_FALLTHROUGH;
     case GDK_TOUCH_END:
     case GDK_TOUCH_CANCEL:
       old_target = update_pointer_focus_state (toplevel, event, NULL);
@@ -1509,10 +1500,6 @@ handle_pointing_event (GdkEvent *event)
       }
       break;
     case GDK_ENTER_NOTIFY:
-      if (gdk_crossing_event_get_mode (event) == GDK_CROSSING_GRAB ||
-          gdk_crossing_event_get_mode (event) == GDK_CROSSING_UNGRAB)
-        break;
-      G_GNUC_FALLTHROUGH;
     case GDK_DRAG_ENTER:
     case GDK_DRAG_MOTION:
     case GDK_DROP_START:


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