Browse Source

Fixed SearchAndReplaceBinding.Detach

pull/33/head 4.3-Beta1
Daniel Grunwald 13 years ago
parent
commit
5f770be656
  1. 15
      src/AddIns/Misc/SearchAndReplace/Project/SearchOptions.cs

15
src/AddIns/Misc/SearchAndReplace/Project/SearchOptions.cs

@ -159,16 +159,19 @@ namespace SearchAndReplace
public class SearchAndReplaceBinding : DefaultLanguageBinding public class SearchAndReplaceBinding : DefaultLanguageBinding
{ {
TextArea textArea;
SearchInputHandler handler; SearchInputHandler handler;
public override void Attach(ITextEditor editor) public override void Attach(ITextEditor editor)
{ {
TextArea textArea = editor.GetService(typeof(TextArea)) as TextArea; base.Attach(editor);
if (textArea == null) return; textArea = editor.GetService(typeof(TextArea)) as TextArea;
if (textArea != null) {
handler = new SearchInputHandler(textArea); handler = new SearchInputHandler(textArea);
textArea.DefaultInputHandler.NestedInputHandlers.Add(handler); textArea.DefaultInputHandler.NestedInputHandlers.Add(handler);
handler.SearchOptionsChanged += SearchOptionsChanged; handler.SearchOptionsChanged += SearchOptionsChanged;
} }
}
void SearchOptionsChanged(object sender, SearchOptionsChangedEventArgs e) void SearchOptionsChanged(object sender, SearchOptionsChangedEventArgs e)
{ {
@ -180,10 +183,12 @@ namespace SearchAndReplace
public override void Detach() public override void Detach()
{ {
if (handler != null) { base.Detach();
handler.SearchOptionsChanged -= SearchOptionsChanged; if (textArea != null) {
} textArea.DefaultInputHandler.NestedInputHandlers.Remove(handler);
textArea = null;
handler = null; handler = null;
} }
} }
} }
}

Loading…
Cancel
Save