Browse Source

Fixed ObjectDisposedException generated when running XSL transform after splitting the XSLT Output window. The TextAreaControl/TextArea classes were not removing document event handlers when disposed.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@653 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Matt Ward 20 years ago
parent
commit
834d5bf387
  1. 11
      src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextArea.cs
  2. 12
      src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaControl.cs

11
src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextArea.cs

@ -56,6 +56,8 @@ namespace ICSharpCode.TextEditor @@ -56,6 +56,8 @@ namespace ICSharpCode.TextEditor
SelectionManager selectionManager;
Caret caret;
bool disposed;
public TextEditorControl MotherTextEditorControl {
get {
return motherTextEditorControl;
@ -727,12 +729,17 @@ namespace ICSharpCode.TextEditor @@ -727,12 +729,17 @@ namespace ICSharpCode.TextEditor
// ++Caret.DesiredColumn;
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if (disposing) {
Caret.Dispose();
if (!disposed) {
disposed = true;
caret.PositionChanged -= new EventHandler(SearchMatchingBracket);
Document.TextContentChanged -= new EventHandler(TextContentChanged);
Document.FoldingManager.FoldingsChanged -= new EventHandler(DocumentFoldingsChanged);
caret.Dispose();
}
}
}

12
src/Libraries/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaControl.cs

@ -39,6 +39,7 @@ namespace ICSharpCode.TextEditor @@ -39,6 +39,7 @@ namespace ICSharpCode.TextEditor
HScrollBar hScrollBar = new HScrollBar();
TextArea textArea;
bool doHandleMousewheel = true;
bool disposed;
public TextArea TextArea {
get {
@ -110,6 +111,17 @@ namespace ICSharpCode.TextEditor @@ -110,6 +111,17 @@ namespace ICSharpCode.TextEditor
SetStyle(ControlStyles.Selectable, true);
}
protected override void Dispose(bool disposing)
{
if (disposing) {
if (!disposed) {
disposed = true;
Document.DocumentChanged -= new DocumentEventHandler(AdjustScrollBars);
}
}
base.Dispose(disposing);
}
protected override void OnResize(System.EventArgs e)
{
base.OnResize(e);

Loading…
Cancel
Save