[gtk/wip/chergert/for-4-6: 11/56] macos: remove emulated scroll events




commit ccf18c239dd402c879dc078ccbb80ade72107d01
Author: Christian Hergert <christian hergert me>
Date:   Fri Feb 25 23:22:05 2022 -0800

    macos: remove emulated scroll events
    
    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 | 34 ++++++++++------------------------
 1 file changed, 10 insertions(+), 24 deletions(-)
---
diff --git a/gdk/macos/gdkmacosdisplay-translate.c b/gdk/macos/gdkmacosdisplay-translate.c
index 646ba0cd9e..db1cfa2527 100644
--- a/gdk/macos/gdkmacosdisplay-translate.c
+++ b/gdk/macos/gdkmacosdisplay-translate.c
@@ -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)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]