From 811265554a867f3c9a1c519ef8091927b006816e Mon Sep 17 00:00:00 2001 From: csf Date: Wed, 11 May 2022 17:30:41 +0800 Subject: [PATCH] adjust kScaleSlop --- lib/widgets/gestures.dart | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/widgets/gestures.dart b/lib/widgets/gestures.dart index 25f648541..639b000f4 100644 --- a/lib/widgets/gestures.dart +++ b/lib/widgets/gestures.dart @@ -10,7 +10,8 @@ enum CustomTouchGestureState { twoFingerHorizontalDrag, } -const kScaleSlop = kPrecisePointerPanSlop / 15; +// Adjust Carefully! balance vertical and pan +const kScaleSlop = kPrecisePointerPanSlop / 28; class CustomTouchGestureRecognizer extends ScaleGestureRecognizer { CustomTouchGestureRecognizer({ @@ -154,8 +155,16 @@ class CustomTouchGestureRecognizer extends ScaleGestureRecognizer { _sumScale += d.scale - 1; _sumHorizontal += d.focalPointDelta.dx; _sumVertical += d.focalPointDelta.dy; - // start - if (onTwoFingerVerticalDragUpdate != null && + // start , order is important + if (onTwoFingerScaleUpdate != null && _sumScale.abs() > kScaleSlop) { + debugPrint("start Scale"); + _currentState = CustomTouchGestureState.twoFingerScale; + if (onTwoFingerScaleStart != null) { + onTwoFingerScaleStart!(ScaleStartDetails( + localFocalPoint: d.localFocalPoint, focalPoint: d.focalPoint)); + } + _reset(); + } else if (onTwoFingerVerticalDragUpdate != null && _sumVertical.abs() > kPrecisePointerPanSlop && _sumHorizontal.abs() < kPrecisePointerPanSlop) { debugPrint("start Vertical"); @@ -164,14 +173,6 @@ class CustomTouchGestureRecognizer extends ScaleGestureRecognizer { } _currentState = CustomTouchGestureState.twoFingerVerticalDrag; _reset(); - } else if (onTwoFingerScaleUpdate != null && _sumScale.abs() > kScaleSlop) { - debugPrint("start Scale"); - _currentState = CustomTouchGestureState.twoFingerScale; - if (onTwoFingerScaleStart != null) { - onTwoFingerScaleStart!(ScaleStartDetails( - localFocalPoint: d.localFocalPoint, focalPoint: d.focalPoint)); - } - _reset(); } }