From fa88db047cdd0e26df5275682591ff3f8a4299ea Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Thu, 21 Nov 2024 21:36:45 +0200 Subject: [PATCH] chore: adjust fix --- .../ScrollContentPresenter.wasm.cs | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/Uno.UI/UI/Xaml/Controls/ScrollContentPresenter/ScrollContentPresenter.wasm.cs b/src/Uno.UI/UI/Xaml/Controls/ScrollContentPresenter/ScrollContentPresenter.wasm.cs index 2e4a0aadcabc..d315db50e219 100644 --- a/src/Uno.UI/UI/Xaml/Controls/ScrollContentPresenter/ScrollContentPresenter.wasm.cs +++ b/src/Uno.UI/UI/Xaml/Controls/ScrollContentPresenter/ScrollContentPresenter.wasm.cs @@ -262,16 +262,9 @@ internal bool Set( } _pendingScrollTo = (horizontalOffset, verticalOffset); + _lastScrollToRequest = (horizontalOffset, verticalOffset); - try - { - _lastScrollToRequest = (horizontalOffset, verticalOffset); - WindowManagerInterop.ScrollTo(HtmlId, horizontalOffset, verticalOffset, disableAnimation); - } - finally - { - _lastScrollToRequest = (null, null); - } + WindowManagerInterop.ScrollTo(HtmlId, horizontalOffset, verticalOffset, disableAnimation); if (_pendingScrollTo.HasValue) { @@ -361,8 +354,12 @@ private bool OnScroll(object sender, RoutedEventArgs routedEventArgs) var horizontalOffset = GetNativeHorizontalOffset(); var verticalOffset = GetNativeVerticalOffset(); var isIntermediate = - (_lastScrollToRequest.horizontal.HasValue && _lastScrollToRequest.horizontal.Value != horizontalOffset) || - (_lastScrollToRequest.vertical.HasValue && _lastScrollToRequest.vertical.Value != verticalOffset); + (_lastScrollToRequest.horizontal.HasValue && Math.Abs(_lastScrollToRequest.horizontal.Value - horizontalOffset) >= 1) || + (_lastScrollToRequest.vertical.HasValue && Math.Abs(_lastScrollToRequest.vertical.Value - verticalOffset) >= 1); + if (!isIntermediate) + { + _lastScrollToRequest = (null, null); + } if (IsArrangeDirty && _pendingScrollTo is { } pending