diff --git a/platform/lang-impl/src/com/intellij/find/impl/FindDialog.java b/platform/lang-impl/src/com/intellij/find/impl/FindDialog.java index 1b55e7771da8..4fb51e73df83 100644 --- a/platform/lang-impl/src/com/intellij/find/impl/FindDialog.java +++ b/platform/lang-impl/src/com/intellij/find/impl/FindDialog.java @@ -24,6 +24,7 @@ import com.intellij.find.FindSettings; import com.intellij.find.actions.ShowUsagesAction; import com.intellij.ide.util.scopeChooser.ScopeChooserCombo; import com.intellij.lang.Language; +import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ModalityState; @@ -647,7 +648,7 @@ public class FindDialog extends DialogWrapper { pane.insertTab("Options", null, optionsPanel, null, 0); pane.insertTab(PREVIEW_TITLE, null, myPreviewSplitter, null, RESULTS_PREVIEW_TAB_INDEX); myContent = pane; - AnAction anAction = new AnAction() { + final AnAction anAction = new AnAction() { @Override public void actionPerformed(AnActionEvent e) { int selectedIndex = myContent.getSelectedIndex(); @@ -656,7 +657,16 @@ public class FindDialog extends DialogWrapper { }; final ShortcutSet shortcutSet = ActionManager.getInstance().getAction(IdeActions.ACTION_SWITCHER).getShortcutSet(); - anAction.registerCustomShortcutSet(shortcutSet, getRootPane()); + final JRootPane rootPane = getRootPane(); + + anAction.registerCustomShortcutSet(shortcutSet, rootPane); + Disposer.register(myDisposable, new Disposable() { + @Override + public void dispose() { + anAction.unregisterCustomShortcutSet(rootPane); + } + }); + if (myPreviewResultsTabWasSelected) myContent.setSelectedIndex(RESULTS_PREVIEW_TAB_INDEX); return pane.getComponent();