I think this was fixed upstream:
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5479

I'm attaching the patch in this comment.

-- 
Thiago Bellini Ribeiro | https://bellini.dev
From 824e983372d939693f7eba5c394e647a9035a0f8 Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <[email protected]>
Date: Sat, 4 Feb 2023 13:10:42 +0100
Subject: [PATCH] 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
---
 gdk/x11/gdkdevicemanager-xi2.c | 15 +++------------
 1 file 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
-- 
GitLab

Reply via email to