From 9920fee4ea5316a4f63fd84e051888c47eb3f8df Mon Sep 17 00:00:00 2001 From: csf Date: Wed, 11 May 2022 22:34:41 +0800 Subject: [PATCH] fix float error in small resolution --- lib/models/model.dart | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/models/model.dart b/lib/models/model.dart index 14c7759d4..3a4c9b987 100644 --- a/lib/models/model.dart +++ b/lib/models/model.dart @@ -528,8 +528,9 @@ class CursorModel with ChangeNotifier { var cy = r.center.dy; var tryMoveCanvasX = false; if (dx > 0) { - final maxCanvasCanMove = - _displayOriginX + FFI.imageModel.image!.width - r.right; + final maxCanvasCanMove = _displayOriginX + + FFI.imageModel.image!.width - + r.right.roundToDouble(); tryMoveCanvasX = _x + dx > cx && maxCanvasCanMove > 0; if (tryMoveCanvasX) { dx = min(dx, maxCanvasCanMove); @@ -538,7 +539,7 @@ class CursorModel with ChangeNotifier { dx = min(dx, maxCursorCanMove); } } else if (dx < 0) { - final maxCanvasCanMove = _displayOriginX - r.left; + final maxCanvasCanMove = _displayOriginX - r.left.roundToDouble(); tryMoveCanvasX = _x + dx < cx && maxCanvasCanMove < 0; if (tryMoveCanvasX) { dx = max(dx, maxCanvasCanMove); @@ -549,8 +550,9 @@ class CursorModel with ChangeNotifier { } var tryMoveCanvasY = false; if (dy > 0) { - final mayCanvasCanMove = - _displayOriginY + FFI.imageModel.image!.height - r.bottom; + final mayCanvasCanMove = _displayOriginY + + FFI.imageModel.image!.height - + r.bottom.roundToDouble(); tryMoveCanvasY = _y + dy > cy && mayCanvasCanMove > 0; if (tryMoveCanvasY) { dy = min(dy, mayCanvasCanMove); @@ -559,7 +561,7 @@ class CursorModel with ChangeNotifier { dy = min(dy, mayCursorCanMove); } } else if (dy < 0) { - final mayCanvasCanMove = _displayOriginY - r.top; + final mayCanvasCanMove = _displayOriginY - r.top.roundToDouble(); tryMoveCanvasY = _y + dy < cy && mayCanvasCanMove < 0; if (tryMoveCanvasY) { dy = max(dy, mayCanvasCanMove);