public override void Dispose ()
{
CancelCodeSegmentTooltip ();
StopCaretThread ();
DisposeSearchPatternWorker ();
HideCodeSegmentPreviewWindow ();
textEditor.VScroll -= HandleVAdjustmentValueChanged;
textEditor.HighlightSearchPatternChanged -= TextEditor_HighlightSearchPatternChanged;
textEditor.Document.TextReplaced -= HandleTextReplaced;
textEditor.Document.LineChanged -= TextEditorDocumentLineChanged;
textEditor.TextArea.FocusInEvent -= HandleFocusInEvent;
textEditor.TextArea.FocusOutEvent -= HandleFocusOutEvent;
textEditor.GetTextEditorData ().SearchChanged -= HandleSearchChanged;
textLinkCursor.Dispose ();
xtermCursor.Dispose ();
DisposeGCs ();
if (markerLayout != null)
markerLayout.Dispose ();
if (defaultLayout!= null)
defaultLayout.Dispose ();
if (eolMarkerLayout != null) {
foreach (var marker in eolMarkerLayout)
marker.Dispose ();
eolMarkerLayout = null;
}
DisposeLayoutDict ();
if (tabArray != null)
tabArray.Dispose ();
base.Dispose ();
}