diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2023-02-04 13:10:42 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2023-02-04 13:13:19 +0100 |
commit | 824e983372d939693f7eba5c394e647a9035a0f8 (patch) | |
tree | 17e61604608c23d49a902360c8820e4a2c05ef9b /gdk/x11 | |
parent | 9e5417c6c7aaf9d00e56c9986b9e3bfc8752b525 (diff) | |
download | gtk+-824e983372d939693f7eba5c394e647a9035a0f8.tar.gz |
gdk/x11: Reset all scroll valuators on enter
We no longer need to make much distinction between multiple logical
devices, plus it breaks esp. with the Xwayland input device distribution.
Just iterate across all devices and reset their scroll valuators.
Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4160
Diffstat (limited to 'gdk/x11')
-rw-r--r-- | gdk/x11/gdkdevicemanager-xi2.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/gdk/x11/gdkdevicemanager-xi2.c b/gdk/x11/gdkdevicemanager-xi2.c index 4f3d69fc83..46f2f048f9 100644 --- a/gdk/x11/gdkdevicemanager-xi2.c +++ b/gdk/x11/gdkdevicemanager-xi2.c @@ -2066,19 +2066,10 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator, xev->detail != XINotifyInferior && xev->mode != XINotifyPassiveUngrab && GDK_IS_TOPLEVEL (surface)) { - if (gdk_x11_device_xi2_get_device_type ((GdkX11DeviceXI2 *) device) != GDK_X11_DEVICE_TYPE_LOGICAL) - _gdk_device_xi2_reset_scroll_valuators (GDK_X11_DEVICE_XI2 (source_device)); - else - { - GList *physical_devices, *l; - - physical_devices = gdk_device_list_physical_devices (source_device); + GList *l; - for (l = physical_devices; l; l = l->next) - _gdk_device_xi2_reset_scroll_valuators (GDK_X11_DEVICE_XI2 (l->data)); - - g_list_free (physical_devices); - } + for (l = device_manager->devices; l; l = l->next) + _gdk_device_xi2_reset_scroll_valuators (GDK_X11_DEVICE_XI2 (l->data)); } event = gdk_crossing_event_new (ev->evtype == XI_Enter |