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.
This commit is contained in:
Carlos Garnacho
2020-04-01 00:32:57 +02:00
parent e4fb4b635c
commit fa7f6ad910

View File

@@ -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: