From 03a63204c11b0a5e5329c4f3cfa12022e0148327 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Thu, 4 May 2017 13:45:30 +0200 Subject: [PATCH] gtkmain: Ignore GDK_CROSSING_GRAB/UNGRAB crossing events for picking purposes Especially with owner_events=TRUE, this doesn't mean anything for picking, as events will be reported as usual inside the application. --- gtk/gtkmain.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index cc9e238716..ca68a45bd8 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -1475,14 +1475,20 @@ handle_pointing_event (GdkEvent *event) switch (event->type) { case GDK_LEAVE_NOTIFY: + if (event->crossing.mode == GDK_CROSSING_GRAB || + event->crossing.mode == GDK_CROSSING_UNGRAB) + break; case GDK_TOUCH_END: case GDK_TOUCH_CANCEL: old_target = update_pointer_focus_state (toplevel, event, NULL); break; + case GDK_ENTER_NOTIFY: + if (event->crossing.mode == GDK_CROSSING_GRAB || + event->crossing.mode == GDK_CROSSING_UNGRAB) + break; case GDK_TOUCH_BEGIN: case GDK_TOUCH_UPDATE: case GDK_MOTION_NOTIFY: - case GDK_ENTER_NOTIFY: target = _gtk_toplevel_pick (toplevel, x, y, NULL, NULL); old_target = update_pointer_focus_state (toplevel, event, target); if (event->type == GDK_MOTION_NOTIFY || event->type == GDK_ENTER_NOTIFY)