Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Krüger <mkrueger@xamarin.com>2016-05-04 10:41:23 +0300
committerMike Krüger <mkrueger@xamarin.com>2016-05-04 10:41:23 +0300
commit8674d43125b321c940473248dc74a00e7e23ae8c (patch)
tree13928a52ea2aef3b930deedb0c6890ac9f50669f /main/src/core/Mono.Texteditor
parent1bb63d939e82bf58ab978601f550de963960dc67 (diff)
Fixed 'Bug 40770 - Search Result links don't display properly if code
is in a collapsed region in XS 6.1' It's caused by a race - we made the loading async this seems to be a side effect of that.
Diffstat (limited to 'main/src/core/Mono.Texteditor')
-rw-r--r--main/src/core/Mono.Texteditor/Mono.TextEditor/Document/TextDocument.cs18
1 files changed, 4 insertions, 14 deletions
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 9b6f9cccee..82a5c81650 100644
--- a/main/src/core/Mono.Texteditor/Mono.TextEditor/Document/TextDocument.cs
+++ b/main/src/core/Mono.Texteditor/Mono.TextEditor/Document/TextDocument.cs
@@ -1067,7 +1067,6 @@ namespace Mono.TextEditor
if (newSegments == null) {
return;
}
-
InterruptFoldWorker ();
bool update;
if (!startTask) {
@@ -1090,10 +1089,10 @@ namespace Mono.TextEditor
var segments = UpdateFoldSegmentWorker (newSegments, out update, token);
if (token.IsCancellationRequested)
return;
+ foldedSegments = segments;
Gtk.Application.Invoke (delegate {
if (token.IsCancellationRequested)
return;
- foldedSegments = segments;
InformFoldTreeUpdated ();
if (update)
CommitUpdateAll ();
@@ -1275,28 +1274,16 @@ namespace Mono.TextEditor
public void EnsureOffsetIsUnfolded (int offset)
{
- bool needUpdate = false;
foreach (FoldSegment fold in GetFoldingsFromOffset (offset).Where (f => f.IsFolded && f.Offset < offset && offset < f.EndOffset)) {
- needUpdate = true;
fold.IsFolded = false;
}
- if (needUpdate) {
- RequestUpdate (new UpdateAll ());
- CommitDocumentUpdate ();
- }
}
public void EnsureSegmentIsUnfolded (int offset, int length)
{
- bool needUpdate = false;
foreach (var fold in GetFoldingContaining (offset, length).Where (f => f.IsFolded)) {
- needUpdate = true;
fold.IsFolded = false;
}
- if (needUpdate) {
- RequestUpdate (new UpdateAll ());
- CommitDocumentUpdate ();
- }
}
internal void InformFoldTreeUpdated ()
@@ -1308,13 +1295,16 @@ namespace Mono.TextEditor
public event EventHandler FoldTreeUpdated;
HashSet<FoldSegment> foldedSegments = new HashSet<FoldSegment> ();
+
public IEnumerable<FoldSegment> FoldedSegments {
get {
return foldedSegments;
}
}
+
internal void InformFoldChanged (FoldSegmentEventArgs args)
{
+ foldSegmentTask?.Wait ();
if (args.FoldSegment.IsFolded) {
foldedSegments.Add (args.FoldSegment);
} else {