diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/ImeSupport.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/ImeSupport.cs index 91d7cdc0fb..7e34cc1911 100644 --- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/ImeSupport.cs +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/ImeSupport.cs @@ -107,8 +107,6 @@ namespace ICSharpCode.AvalonEdit.Editing currentContext = ImeNativeWrapper.ImmGetContext(defaultImeWnd); } previousContext = ImeNativeWrapper.ImmAssociateContext(hwndSource.Handle, currentContext); - Debug.Assert(hwndSource != null); - Debug.Assert(currentContext != null); hwndSource.AddHook(WndProc); // UpdateCompositionWindow() will be called by the caret becoming visible diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Folding/FoldingElementGenerator.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Folding/FoldingElementGenerator.cs index 4113a66510..de29d032d2 100644 --- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Folding/FoldingElementGenerator.cs +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Folding/FoldingElementGenerator.cs @@ -73,10 +73,19 @@ namespace ICSharpCode.AvalonEdit.Folding /// public override int GetFirstInterestedOffset(int startOffset) { - if (foldingManager != null) + if (foldingManager != null) { + foreach (FoldingSection fs in foldingManager.GetFoldingsContaining(startOffset)) { + // Test whether we're currently within a folded folding (that didn't just end). + // If so, create the fold marker immediately. + // This is necessary if the actual beginning of the fold marker got skipped due to another VisualElementGenerator. + if (fs.IsFolded && fs.EndOffset > startOffset) { + //return startOffset; + } + } return foldingManager.GetNextFoldedFoldingStart(startOffset); - else + } else { return -1; + } } /// @@ -86,7 +95,7 @@ namespace ICSharpCode.AvalonEdit.Folding return null; int foldedUntil = -1; FoldingSection foldingSection = null; - foreach (FoldingSection fs in foldingManager.GetFoldingsAt(offset)) { + foreach (FoldingSection fs in foldingManager.GetFoldingsContaining(offset)) { if (fs.IsFolded) { if (fs.EndOffset > foldedUntil) { foldedUntil = fs.EndOffset;