From e64d24419a370fb73d42bc472703799e520eae44 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Mon, 5 Sep 2011 00:49:13 +0200 Subject: [PATCH] Yet another performance improvement to AvalonEdit - we now use a way smaller dirty rectangle when changing only a single line. --- .../ICSharpCode.AvalonEdit/Rendering/TextView.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs index 8f6b72339b..db13efe534 100644 --- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs @@ -1158,8 +1158,11 @@ namespace ICSharpCode.AvalonEdit.Rendering { Point pos = new Point(-scrollOffset.X, -clippedPixelsOnTop); foreach (VisualLineDrawingVisual visual in visuals) { - visual.Transform = new TranslateTransform(pos.X, pos.Y); - visual.Transform.Freeze(); + TranslateTransform t = visual.Transform as TranslateTransform; + if (t == null || t.X != pos.X || t.Y != pos.Y) { + visual.Transform = new TranslateTransform(pos.X, pos.Y); + visual.Transform.Freeze(); + } pos.Y += visual.Height; } }