Browse Source

Yet another performance improvement to AvalonEdit - we now use a way smaller dirty rectangle when changing only a single line.

4.1
Daniel Grunwald 14 years ago
parent
commit
e64d24419a
  1. 7
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs

7
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs

@ -1158,8 +1158,11 @@ namespace ICSharpCode.AvalonEdit.Rendering @@ -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;
}
}

Loading…
Cancel
Save