Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 3562327

Browse files
committed
Address feedback
1 parent c94a953 commit 3562327

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

shell/platform/darwin/macos/framework/Source/FlutterViewController.mm

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
static constexpr int32_t kMousePointerDeviceId = 0;
3131
static constexpr int32_t kPointerPanZoomDeviceId = 1;
3232

33+
// A trackpad touch following inertial scrolling should cause an inertia cancel
34+
// event to be issued. Use a window of 50 milliseconds after the scroll to account
35+
// for delays in event propagation observed in macOS Ventura.
36+
static constexpr double kTrackpadTouchInertiaCancelWindowMs = 0.050;
37+
3338
/**
3439
* State tracking for mouse events, to adapt between the events coming from the system and the
3540
* events that the embedding API expects.
@@ -842,8 +847,9 @@ - (void)swipeWithEvent:(NSEvent*)event {
842847
- (void)touchesBeganWithEvent:(NSEvent*)event {
843848
NSTouch* touch = event.allTouches.anyObject;
844849
if (touch != nil) {
845-
if ((event.timestamp - _mouseState.last_scroll_momentum_changed_time) < 0.050) {
846-
// The trackpad has been touched within 50 ms following a scroll momentum event.
850+
if ((event.timestamp - _mouseState.last_scroll_momentum_changed_time) <
851+
kTrackpadTouchInertiaCancelWindowMs) {
852+
// The trackpad has been touched following a scroll momentum event.
847853
// A scroll inertia cancel message should be sent to the framework.
848854
NSPoint locationInView = [self.flutterView convertPoint:event.locationInWindow fromView:nil];
849855
NSPoint locationInBackingCoordinates =

0 commit comments

Comments
 (0)