summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2023-02-04 13:10:42 +0100
committerCarlos Garnacho <carlosg@gnome.org>2023-02-04 13:13:19 +0100
commit824e983372d939693f7eba5c394e647a9035a0f8 (patch)
tree17e61604608c23d49a902360c8820e4a2c05ef9b
parent9e5417c6c7aaf9d00e56c9986b9e3bfc8752b525 (diff)
downloadgtk+-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
-rw-r--r--gdk/x11/gdkdevicemanager-xi2.c15
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