From 21a9815071681161451ea50f3bf4afdc455ec9af Mon Sep 17 00:00:00 2001 From: open-trade Date: Sun, 29 Nov 2020 21:33:36 +0800 Subject: [PATCH] bug fix --- flutter_hbb/lib/remote_page.dart | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/flutter_hbb/lib/remote_page.dart b/flutter_hbb/lib/remote_page.dart index b02723165..55d801831 100644 --- a/flutter_hbb/lib/remote_page.dart +++ b/flutter_hbb/lib/remote_page.dart @@ -267,25 +267,26 @@ class _RemotePageState extends State { onScaleUpdate: (details) { var scale = details.scale; if (scale == 1) { - var x = details.focalPoint.dx; - var y = details.focalPoint.dy; - var dx = x - _xOffset; - var dy = y - _yOffset; - if (_scroll) { - FFI.scroll(-dy); - } else { + if (!_scroll) { + var x = details.focalPoint.dx; + var y = details.focalPoint.dy; + var dx = x - _xOffset; + var dy = y - _yOffset; FFI.cursorModel.updatePan(dx, dy); + _xOffset = x; + _yOffset = y; } - _xOffset = x; - _yOffset = y; } else if (!_drag && !_scroll) { FFI.canvasModel.updateScale(scale / _scale); _scale = scale; } }, - onScaleEnd: (_) { + onScaleEnd: (details) { if (_drag) { FFI.sendMouse('up', 'left'); + } else if (_scroll) { + FFI.scroll( + details.velocity.pixelsPerSecond.dy > 0 ? -1 : 1); } }, child: Container( @@ -359,7 +360,7 @@ class _RemotePageState extends State { wrap('Scroll', () { setState(() { _scroll = !_scroll; - if (_drag) { + if (_scroll) { _drag = false; _right = false; } @@ -368,7 +369,7 @@ class _RemotePageState extends State { wrap('Right', () { setState(() { _right = !_right; - if (_drag) { + if (_right) { _scroll = false; _drag = false; }