summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-05-19 16:41:17 -0400
committerMatthias Clasen <mclasen@redhat.com>2020-05-19 16:42:33 -0400
commit2bf8faf2a08fb005d5abb664ce6e20df894abe90 (patch)
tree4f26f4a8a75994a54aee9b676f48e062db028426
parent391472870fdc86bead198b5a845a1c4f3e8e57c7 (diff)
downloadgtk+-event-source-device.tar.gz
x11: Don't pass the same device twice when creating eventsevent-source-device
I did not expect XI2, where this slave device idea originated, to do this. But it does.
-rw-r--r--gdk/x11/gdkdevicemanager-xi2.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gdk/x11/gdkdevicemanager-xi2.c b/gdk/x11/gdkdevicemanager-xi2.c
index 2fa6a749c5..505f6ab7ef 100644
--- a/gdk/x11/gdkdevicemanager-xi2.c
+++ b/gdk/x11/gdkdevicemanager-xi2.c
@@ -1936,8 +1936,11 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
device = g_hash_table_lookup (device_manager->id_table,
GINT_TO_POINTER (xev->deviceid));
- source_device = g_hash_table_lookup (device_manager->id_table,
- GUINT_TO_POINTER (xev->sourceid));
+ if (xev->sourceid != xev->deviceid)
+ source_device = g_hash_table_lookup (device_manager->id_table,
+ GUINT_TO_POINTER (xev->sourceid));
+ else
+ source_device = NULL;
_gdk_device_manager_xi2_handle_focus (surface,
xev->event,