macos: remove emulated scroll events
authorChristian Hergert <christian@hergert.me>
Sat, 26 Feb 2022 07:22:05 +0000 (23:22 -0800)
committerChristian Hergert <christian@hergert.me>
Mon, 28 Feb 2022 19:36:27 +0000 (11:36 -0800)
We don't appear to actually need the emulated scroll events and they get
in the way of proper scrolling with the touchpad.

Fixes #4734

gdk/macos/gdkmacosdisplay-translate.c

index 646ba0cd9e165d02a564eb2c7fe9afca9f2006f1..db1cfa252783d28b729685cb9218ff86ad1a1047 100644 (file)
@@ -678,31 +678,17 @@ fill_scroll_event (GdkMacosDisplay *self,
       dy = 0.0;
     }
 
-  if (dx != 0.0 || dy != 0.0)
+  if ((dx != 0.0 || dy != 0.0) && ![nsevent hasPreciseScrollingDeltas])
     {
-      if ([nsevent hasPreciseScrollingDeltas])
-        {
-          GdkEvent *emulated;
-
-          emulated = gdk_scroll_event_new_discrete (GDK_SURFACE (surface),
-                                                    pointer,
-                                                    NULL,
-                                                    get_time_from_ns_event (nsevent),
-                                                    state,
-                                                    direction,
-                                                    TRUE);
-          _gdk_event_queue_append (GDK_DISPLAY (self), emulated);
-        }
-      else
-        {
-          ret = gdk_scroll_event_new_discrete (GDK_SURFACE (surface),
-                                               pointer,
-                                               NULL,
-                                               get_time_from_ns_event (nsevent),
-                                               state,
-                                               direction,
-                                               FALSE);
-        }
+      g_assert (ret == NULL);
+
+      ret = gdk_scroll_event_new_discrete (GDK_SURFACE (surface),
+                                           pointer,
+                                           NULL,
+                                           get_time_from_ns_event (nsevent),
+                                           state,
+                                           direction,
+                                           FALSE);
     }
 
   if (phase == NSEventPhaseEnded || phase == NSEventPhaseCancelled)