Browse Source

Fixed SearchAndReplaceBinding.Detach

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

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

@ -159,15 +159,18 @@ 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;
handler = new SearchInputHandler(textArea); if (textArea != null) {
textArea.DefaultInputHandler.NestedInputHandlers.Add(handler); handler = new SearchInputHandler(textArea);
handler.SearchOptionsChanged += SearchOptionsChanged; textArea.DefaultInputHandler.NestedInputHandlers.Add(handler);
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