diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ChangeMarkerMargin.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ChangeMarkerMargin.cs index cb3bab2373..68fb9c81dc 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ChangeMarkerMargin.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ChangeMarkerMargin.cs @@ -27,55 +27,53 @@ namespace ICSharpCode.AvalonEdit.AddIn protected override void OnRender(DrawingContext drawingContext) { - using (DebugTimer.Time("ChangeMarkerMargin.OnRender")) { - Size renderSize = this.RenderSize; - TextView textView = this.TextView; + Size renderSize = this.RenderSize; + TextView textView = this.TextView; + + if (textView != null && textView.VisualLinesValid) { + ITextEditor editor = textView.Services.GetService(typeof(ITextEditor)) as ITextEditor; + changeWatcher.Initialize(editor.Document); - if (textView != null && textView.VisualLinesValid) { - ITextEditor editor = textView.Services.GetService(typeof(ITextEditor)) as ITextEditor; - changeWatcher.Initialize(editor.Document); + foreach (VisualLine line in textView.VisualLines) { + Rect rect = new Rect(0, line.VisualTop - textView.ScrollOffset.Y, 5, line.Height); - foreach (VisualLine line in textView.VisualLines) { - Rect rect = new Rect(0, line.VisualTop - textView.ScrollOffset.Y, 5, line.Height); - - LineChangeInfo info = changeWatcher.GetChange(editor.Document.GetLine(line.FirstDocumentLine.LineNumber)); + LineChangeInfo info = changeWatcher.GetChange(editor.Document.GetLine(line.FirstDocumentLine.LineNumber)); + + switch (info.Change) { + case ChangeType.None: + break; + case ChangeType.Added: + drawingContext.DrawRectangle(Brushes.LightGreen, null, rect); + break; + case ChangeType.Modified: + drawingContext.DrawRectangle(Brushes.LightBlue, null, rect); + break; + case ChangeType.Unsaved: + drawingContext.DrawRectangle(Brushes.Yellow, null, rect); + break; + default: + throw new Exception("Invalid value for ChangeType"); + } + + if (!string.IsNullOrEmpty(info.DeletedLinesAfterThisLine)) { + Point pt1 = new Point(5, line.VisualTop + line.Height - textView.ScrollOffset.Y - 4); + Point pt2 = new Point(10, line.VisualTop + line.Height - textView.ScrollOffset.Y); + Point pt3 = new Point(5, line.VisualTop + line.Height - textView.ScrollOffset.Y + 4); - switch (info.Change) { - case ChangeType.None: - break; - case ChangeType.Added: - drawingContext.DrawRectangle(Brushes.LightGreen, null, rect); - break; - case ChangeType.Modified: - drawingContext.DrawRectangle(Brushes.LightBlue, null, rect); - break; - case ChangeType.Unsaved: - drawingContext.DrawRectangle(Brushes.Yellow, null, rect); - break; - default: - throw new Exception("Invalid value for ChangeType"); - } + drawingContext.DrawGeometry(Brushes.Red, null, new PathGeometry(new List() { CreateNAngle(pt1, pt2, pt3) })); + } + + // special case for line 0 + if (line.FirstDocumentLine.LineNumber == 1) { + info = changeWatcher.GetChange(null); if (!string.IsNullOrEmpty(info.DeletedLinesAfterThisLine)) { - Point pt1 = new Point(5, line.VisualTop + line.Height - textView.ScrollOffset.Y - 4); - Point pt2 = new Point(10, line.VisualTop + line.Height - textView.ScrollOffset.Y); - Point pt3 = new Point(5, line.VisualTop + line.Height - textView.ScrollOffset.Y + 4); + Point pt1 = new Point(5, line.VisualTop - textView.ScrollOffset.Y - 4); + Point pt2 = new Point(10, line.VisualTop - textView.ScrollOffset.Y); + Point pt3 = new Point(5, line.VisualTop - textView.ScrollOffset.Y + 4); drawingContext.DrawGeometry(Brushes.Red, null, new PathGeometry(new List() { CreateNAngle(pt1, pt2, pt3) })); } - - // special case for line 0 - if (line.FirstDocumentLine.LineNumber == 1) { - info = changeWatcher.GetChange(null); - - if (!string.IsNullOrEmpty(info.DeletedLinesAfterThisLine)) { - Point pt1 = new Point(5, line.VisualTop - textView.ScrollOffset.Y - 4); - Point pt2 = new Point(10, line.VisualTop - textView.ScrollOffset.Y); - Point pt3 = new Point(5, line.VisualTop - textView.ScrollOffset.Y + 4); - - drawingContext.DrawGeometry(Brushes.Red, null, new PathGeometry(new List() { CreateNAngle(pt1, pt2, pt3) })); - } - } } } } diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/DefaultChangeWatcher.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/DefaultChangeWatcher.cs index 7e138effb0..ec19b0b363 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/DefaultChangeWatcher.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/DefaultChangeWatcher.cs @@ -92,8 +92,6 @@ namespace ICSharpCode.AvalonEdit.AddIn int lastEndLine = 0; foreach (Edit edit in diff.GetEdits()) { - Console.WriteLine(edit); - int beginLine = edit.BeginB; int endLine = edit.EndB;