From 004c2e069c2aafcd530e2e4b99ee00ed203536da Mon Sep 17 00:00:00 2001 From: fufesou Date: Sun, 17 Dec 2023 12:43:47 +0800 Subject: [PATCH] https://github.com/rustdesk/rustdesk/issues/6686 (#6694) Signed-off-by: fufesou --- flutter/lib/models/input_model.dart | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/flutter/lib/models/input_model.dart b/flutter/lib/models/input_model.dart index eeff4d2bb..dcda7b6a9 100644 --- a/flutter/lib/models/input_model.dart +++ b/flutter/lib/models/input_model.dart @@ -181,6 +181,8 @@ class InputModel { var _lastScale = 1.0; + bool _pointerMovedAfterEnter = false; + // mouse final isPhysicalMouse = false.obs; int _lastButtons = 0; @@ -441,6 +443,7 @@ class InputModel { void enterOrLeave(bool enter) { toReleaseKeys.release(handleRawKeyEvent); + _pointerMovedAfterEnter = false; // Fix status if (!enter) { @@ -778,6 +781,7 @@ class InputModel { type = 'up'; break; case _kMouseEventMove: + _pointerMovedAfterEnter = true; isMove = true; break; default: @@ -785,6 +789,12 @@ class InputModel { } evt['type'] = type; + if (type == 'down' && !_pointerMovedAfterEnter) { + // Move mouse to the position of the down event first. + lastMousePos = ui.Offset(x, y); + refreshMousePos(); + } + final pos = handlePointerDevicePos( kPointerEventKindMouse, x,