Browse Source

Fixed bug causing regions to close suddenly.

pull/45/merge
Andreas Weizel 13 years ago
parent
commit
d1f2295a07
  1. 3
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ParserFoldingStrategy.cs
  2. 6
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Folding/FoldingManager.cs

3
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ParserFoldingStrategy.cs

@ -23,7 +23,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -23,7 +23,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
readonly FoldingManager foldingManager;
TextArea textArea;
bool isFirstUpdate = true;
public FoldingManager FoldingManager {
get { return foldingManager; }
@ -54,8 +53,6 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -54,8 +53,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
IEnumerable<NewFolding> newFoldings = parseInfo.GetFoldings(textArea.Document, out firstErrorOffset);
newFoldings = newFoldings.OrderBy(f => f.StartOffset);
foldingManager.UpdateFoldings(newFoldings, firstErrorOffset);
isFirstUpdate = false;
}
}
}

6
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Folding/FoldingManager.cs

@ -23,6 +23,7 @@ namespace ICSharpCode.AvalonEdit.Folding @@ -23,6 +23,7 @@ namespace ICSharpCode.AvalonEdit.Folding
internal readonly List<TextView> textViews = new List<TextView>();
readonly TextSegmentCollection<FoldingSection> foldings;
bool isFirstUpdate = true;
#region Constructor
/// <summary>
@ -261,7 +262,10 @@ namespace ICSharpCode.AvalonEdit.Folding @@ -261,7 +262,10 @@ namespace ICSharpCode.AvalonEdit.Folding
// no matching current folding; create a new one:
section = this.CreateFolding(newFolding.StartOffset, newFolding.EndOffset);
// auto-close #regions only when opening the document
section.IsFolded = newFolding.DefaultClosed;
if (isFirstUpdate) {
section.IsFolded = newFolding.DefaultClosed;
isFirstUpdate = false;
}
section.Tag = newFolding;
}
section.Title = newFolding.Name;

Loading…
Cancel
Save