From 2badecba2a51c8577e2c93d1a92246ba405c7e61 Mon Sep 17 00:00:00 2001 From: dignow Date: Mon, 17 Jul 2023 20:48:58 +0800 Subject: [PATCH] debug, touch screen input Signed-off-by: dignow --- flutter/lib/common/widgets/gestures.dart | 16 +++++++----- flutter/lib/common/widgets/remote_input.dart | 26 +++++++++++--------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/flutter/lib/common/widgets/gestures.dart b/flutter/lib/common/widgets/gestures.dart index 77f9c42fd..ff575777d 100644 --- a/flutter/lib/common/widgets/gestures.dart +++ b/flutter/lib/common/widgets/gestures.dart @@ -113,13 +113,14 @@ class CustomTouchGestureRecognizer extends ScaleGestureRecognizer { } void onOneFingerStartDebounce(ScaleUpdateDetails d) { - final start = (ScaleUpdateDetails d) { + start(ScaleUpdateDetails d) { _currentState = GestureState.oneFingerPan; if (onOneFingerPanStart != null) { onOneFingerPanStart!(DragStartDetails( localPosition: d.localFocalPoint, globalPosition: d.focalPoint)); } - }; + } + if (_currentState != GestureState.none) { _debounceTimer = Timer(Duration(milliseconds: 200), () { start(d); @@ -132,13 +133,14 @@ class CustomTouchGestureRecognizer extends ScaleGestureRecognizer { } void onTwoFingerStartDebounce(ScaleUpdateDetails d) { - final start = (ScaleUpdateDetails d) { + start(ScaleUpdateDetails d) { _currentState = GestureState.twoFingerScale; if (onTwoFingerScaleStart != null) { onTwoFingerScaleStart!(ScaleStartDetails( localFocalPoint: d.localFocalPoint, focalPoint: d.focalPoint)); } - }; + } + if (_currentState == GestureState.threeFingerVerticalDrag) { _debounceTimer = Timer(Duration(milliseconds: 200), () { start(d); @@ -266,11 +268,12 @@ class HoldTapMoveGestureRecognizer extends GestureRecognizer { if (!_isStart) { _resolve(); } - if (onHoldDragUpdate != null) + if (onHoldDragUpdate != null) { onHoldDragUpdate!(DragUpdateDetails( globalPosition: event.position, localPosition: event.localPosition, delta: event.delta)); + } } } } else if (event is PointerCancelEvent) { @@ -498,8 +501,9 @@ class DoubleFinerTapGestureRecognizer extends GestureRecognizer { debugPrint("PointerUpEvent"); _upTap.add(tracker.pointer); } else if (event is PointerMoveEvent) { - if (!tracker.isWithinGlobalTolerance(event, kDoubleTapTouchSlop)) + if (!tracker.isWithinGlobalTolerance(event, kDoubleTapTouchSlop)) { _reject(tracker); + } } else if (event is PointerCancelEvent) { _reject(tracker); } diff --git a/flutter/lib/common/widgets/remote_input.dart b/flutter/lib/common/widgets/remote_input.dart index 5fc37e939..8c14bf26c 100644 --- a/flutter/lib/common/widgets/remote_input.dart +++ b/flutter/lib/common/widgets/remote_input.dart @@ -53,15 +53,15 @@ class RawTouchGestureDetectorRegion extends StatefulWidget { _RawTouchGestureDetectorRegionState(); } - /// touchMode only: - /// LongPress -> right click - /// OneFingerPan -> start/end -> left down start/end - /// onDoubleTapDown -> move to - /// onLongPressDown => move to - /// - /// mouseMode only: - /// DoubleFiner -> right click - /// HoldDrag -> left drag +/// touchMode only: +/// LongPress -> right click +/// OneFingerPan -> start/end -> left down start/end +/// onDoubleTapDown -> move to +/// onLongPressDown => move to +/// +/// mouseMode only: +/// DoubleFiner -> right click +/// HoldDrag -> left drag class _RawTouchGestureDetectorRegionState extends State { Offset _cacheLongPressPosition = Offset(0, 0); @@ -139,6 +139,9 @@ class _RawTouchGestureDetectorRegionState if (lastDeviceKind != PointerDeviceKind.touch) { return; } + if (isDesktop) { + return; + } if (handleTouch) { ffi.cursorModel .move(_cacheLongPressPosition.dx, _cacheLongPressPosition.dy); @@ -151,7 +154,7 @@ class _RawTouchGestureDetectorRegionState if (lastDeviceKind != PointerDeviceKind.touch) { return; } - if (!handleTouch) { + if (isDesktop || !handleTouch) { inputModel.tap(MouseButtons.right); } } @@ -190,8 +193,8 @@ class _RawTouchGestureDetectorRegionState return; } if (handleTouch) { - ffi.cursorModel.move(d.localPosition.dx, d.localPosition.dy); inputModel.sendMouse('down', MouseButtons.left); + ffi.cursorModel.move(d.localPosition.dx, d.localPosition.dy); } else { final offset = ffi.cursorModel.offset; final cursorX = offset.dx; @@ -250,6 +253,7 @@ class _RawTouchGestureDetectorRegionState _scale = 1; bind.sessionSetViewStyle(sessionId: sessionId, value: ""); } + inputModel.sendMouse('up', MouseButtons.left); } get onHoldDragCancel => null;