From b403a7a25dce68d02bdda3591f32f72e47f8efd2 Mon Sep 17 00:00:00 2001 From: fufesou Date: Sat, 27 Apr 2024 15:01:21 +0800 Subject: [PATCH] fix: scroll percent is auto reset after detecting displays change (#7845) Signed-off-by: fufesou --- flutter/lib/models/model.dart | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/flutter/lib/models/model.dart b/flutter/lib/models/model.dart index 7edaa8f06..486113eae 100644 --- a/flutter/lib/models/model.dart +++ b/flutter/lib/models/model.dart @@ -1017,6 +1017,8 @@ class FfiModel with ChangeNotifier { } } } + parent.target!.canvasModel + .tryUpdateScrollStyle(Duration(milliseconds: 300), null); notifyListeners(); } @@ -1412,10 +1414,20 @@ class CanvasModel with ChangeNotifier { if (refreshMousePos) { parent.target?.inputModel.refreshMousePos(); } - if (style == kRemoteViewStyleOriginal && - _scrollStyle == ScrollStyle.scrollbar) { - updateScrollPercent(); + tryUpdateScrollStyle(Duration.zero, style); + } + + tryUpdateScrollStyle(Duration duration, String? style) async { + if (_scrollStyle != ScrollStyle.scrollbar) return; + style ??= await bind.sessionGetViewStyle(sessionId: sessionId); + if (style != kRemoteViewStyleOriginal) { + return; } + + _resetScroll(); + Future.delayed(duration, () async { + updateScrollPercent(); + }); } updateScrollStyle() async {