fepitre / rpms / gtk3

Forked from rpms/gtk3 4 years ago
Clone

Blame SOURCES/0001-gdk-Always-emit-motion-after-enter.patch

e340b5
From 12d965a62da72315d2cd201d30abeb79933f6eb2 Mon Sep 17 00:00:00 2001
e340b5
From: Carlos Garnacho <carlosg@gnome.org>
e340b5
Date: Mon, 20 Nov 2017 18:54:40 +0100
e340b5
Subject: [PATCH] gdk: Always emit motion after enter
e340b5
e340b5
After a pointer emulating GDK_TOUCH_END event triggering a fake leave
e340b5
notify with GDK_CROSSING_TOUCH_END mode, pointer_under_window will be
e340b5
unset, which will make the next motion/touch_update event to trigger
e340b5
an enter notify event again.
e340b5
e340b5
Up till there, that's fine, however the motion event is just consumed
e340b5
in favor of the just synthesized enter notify event. This is unexpected
e340b5
to clients like spice-gtk that will only update coordinates from motion
e340b5
events, sending both enter and motion will make them happy.
e340b5
---
e340b5
 gdk/gdkwindow.c | 5 +++--
e340b5
 1 file changed, 3 insertions(+), 2 deletions(-)
e340b5
e340b5
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
e340b5
index 79804cdacd..3ac80e910a 100644
e340b5
--- a/gdk/gdkwindow.c
e340b5
+++ b/gdk/gdkwindow.c
e340b5
@@ -9294,8 +9294,9 @@ proxy_pointer_event (GdkDisplay                 *display,
e340b5
 				       serial, non_linear);
e340b5
       _gdk_display_set_window_under_pointer (display, device, pointer_window);
e340b5
     }
e340b5
-  else if (source_event->type == GDK_MOTION_NOTIFY ||
e340b5
-           source_event->type == GDK_TOUCH_UPDATE)
e340b5
+
e340b5
+  if (source_event->type == GDK_MOTION_NOTIFY ||
e340b5
+      source_event->type == GDK_TOUCH_UPDATE)
e340b5
     {
e340b5
       GdkWindow *event_win;
e340b5
       guint evmask;
e340b5
-- 
e340b5
2.14.3
e340b5