protected virtual void OnPositionChanged(EventArgs e) { ArrayList foldings = textArea.Document.FoldingManager.GetFoldingsFromPosition(line, column); bool shouldUpdate = false; foreach (FoldMarker foldMarker in foldings) { //Console.WriteLine(foldMarker); shouldUpdate |= foldMarker.IsFolded; foldMarker.IsFolded = false; } if (shouldUpdate) { textArea.BeginUpdate(); textArea.Document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.WholeTextArea)); textArea.EndUpdate(); textArea.Document.FoldingManager.NotifyFoldingsChanged(EventArgs.Empty); } if (PositionChanged != null) { PositionChanged(this, e); } textArea.ScrollToCaret(); }
protected virtual void OnPositionChanged(EventArgs e) { if (_textArea.MotherTextEditorControl.IsInUpdate) { if (_firePositionChangedAfterUpdateEnd == false) { _firePositionChangedAfterUpdateEnd = true; _textArea.Document.UpdateCommited += FirePositionChangedAfterUpdateEnd; } return; } else if (_firePositionChangedAfterUpdateEnd) { _textArea.Document.UpdateCommited -= FirePositionChangedAfterUpdateEnd; _firePositionChangedAfterUpdateEnd = false; } List <FoldMarker> foldings = _textArea.Document.FoldingManager.GetFoldingsFromPosition(_line, _column); bool shouldUpdate = false; foreach (FoldMarker foldMarker in foldings) { shouldUpdate |= foldMarker.IsFolded; foldMarker.IsFolded = false; } if (shouldUpdate) { _textArea.Document.FoldingManager.NotifyFoldingsChanged(EventArgs.Empty); } PositionChanged?.Invoke(this, e); _textArea.ScrollToCaret(); }
protected virtual void OnPositionChanged(EventArgs e) { List <FoldMarker> foldings = textArea.Document.FoldingManager.GetFoldingsFromPosition(line, column); bool shouldUpdate = false; foreach (FoldMarker foldMarker in foldings) { shouldUpdate |= foldMarker.IsFolded; foldMarker.IsFolded = false; } if (shouldUpdate) { textArea.Document.FoldingManager.NotifyFoldingsChanged(EventArgs.Empty); } if (PositionChanged != null) { PositionChanged(this, e); } textArea.ScrollToCaret(); }