diff options
author | Mike Krüger <mkrueger@xamarin.com> | 2013-08-19 18:34:12 +0400 |
---|---|---|
committer | Mike Krüger <mkrueger@xamarin.com> | 2013-08-19 18:34:12 +0400 |
commit | a7f1d253a40cc6c4b91c82401f4be12f8cb1d567 (patch) | |
tree | 85773062e34dc7b3f4153520dd1827bb69ae63bb /main/src/core/Mono.Texteditor | |
parent | 179568a964dec467529ec413c83220d74045f2a9 (diff) |
[TextEditor] Fixed text marker update bug.
Diffstat (limited to 'main/src/core/Mono.Texteditor')
-rw-r--r-- | main/src/core/Mono.Texteditor/Mono.TextEditor/Document/DocumentUpdateRequest.cs | 1 | ||||
-rw-r--r-- | main/src/core/Mono.Texteditor/Mono.TextEditor/Document/TextDocument.cs | 11 |
2 files changed, 9 insertions, 3 deletions
diff --git a/main/src/core/Mono.Texteditor/Mono.TextEditor/Document/DocumentUpdateRequest.cs b/main/src/core/Mono.Texteditor/Mono.TextEditor/Document/DocumentUpdateRequest.cs index 4c148b2c85..bf4ce8f02d 100644 --- a/main/src/core/Mono.Texteditor/Mono.TextEditor/Document/DocumentUpdateRequest.cs +++ b/main/src/core/Mono.Texteditor/Mono.TextEditor/Document/DocumentUpdateRequest.cs @@ -83,6 +83,7 @@ namespace Mono.TextEditor public override void Update (TextEditor editor) { + editor.TextViewMargin.PurgeLayoutCache (); editor.RedrawLines (start, end); } } diff --git a/main/src/core/Mono.Texteditor/Mono.TextEditor/Document/TextDocument.cs b/main/src/core/Mono.Texteditor/Mono.TextEditor/Document/TextDocument.cs index e0ac644faf..0e4cf525d1 100644 --- a/main/src/core/Mono.Texteditor/Mono.TextEditor/Document/TextDocument.cs +++ b/main/src/core/Mono.Texteditor/Mono.TextEditor/Document/TextDocument.cs @@ -1376,8 +1376,10 @@ namespace Mono.TextEditor public void AddMarker (TextSegmentMarker marker) { - CommitLineUpdate (GetLineByOffset (marker.Offset)); textSegmentMarkerTree.Add (marker); + var startLine = OffsetToLineNumber (marker.Offset); + var endLine = OffsetToLineNumber (marker.EndOffset); + CommitMultipleLineUpdate (startLine, endLine); } /// <summary> @@ -1388,8 +1390,11 @@ namespace Mono.TextEditor public bool RemoveMarker (TextSegmentMarker marker) { bool wasRemoved = textSegmentMarkerTree.Remove (marker); - if (wasRemoved) - CommitLineUpdate (GetLineByOffset (marker.Offset)); + if (wasRemoved) { + var startLine = OffsetToLineNumber (marker.Offset); + var endLine = OffsetToLineNumber (marker.EndOffset); + CommitMultipleLineUpdate (startLine, endLine); + } return wasRemoved; } |