diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-05-19 16:41:17 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-05-19 16:42:33 -0400 |
commit | 2bf8faf2a08fb005d5abb664ce6e20df894abe90 (patch) | |
tree | 4f26f4a8a75994a54aee9b676f48e062db028426 | |
parent | 391472870fdc86bead198b5a845a1c4f3e8e57c7 (diff) | |
download | gtk+-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.c | 7 |
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, |