From 91c280a0144eb536c2f4a16aff69d45e1a3a34b5 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 1 Jun 2020 16:03:25 +0200 Subject: [PATCH] Don't invalidate if viewport unchanged. --- src/Avalonia.Controls/Repeater/ViewportManager.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/Repeater/ViewportManager.cs b/src/Avalonia.Controls/Repeater/ViewportManager.cs index c62d447c95..e50de87877 100644 --- a/src/Avalonia.Controls/Repeater/ViewportManager.cs +++ b/src/Avalonia.Controls/Repeater/ViewportManager.cs @@ -459,6 +459,7 @@ namespace Avalonia.Controls private void UpdateViewport(Rect viewport) { var currentVisibleWindow = viewport; + var oldVisibleWindow = _visibleWindow; if (-currentVisibleWindow.X <= ItemsRepeater.ClearedElementsArrangePosition.X && -currentVisibleWindow.Y <= ItemsRepeater.ClearedElementsArrangePosition.Y) @@ -471,7 +472,10 @@ namespace Avalonia.Controls _visibleWindow = currentVisibleWindow; } - TryInvalidateMeasure(); + if (_visibleWindow != oldVisibleWindow) + { + TryInvalidateMeasure(); + } } private static void ValidateCacheLength(double cacheLength)