diff --git a/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java b/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java index 764d1fc588e6..cd03a44c613d 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java +++ b/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java @@ -434,6 +434,13 @@ public class FileStructurePopup implements Disposable { } }.registerCustomShortcutSet(shortcutSet, panel); + new AnAction() { + @Override + public void actionPerformed(AnActionEvent e) { + mySpeedSearch.setEnteredPrefix(""); + } + }.registerCustomShortcutSet(CustomShortcutSet.fromString(SystemInfo.isMac ? "meta BACK_SPACE" : "control BACK_SPACE"), myTree); + new AnAction() { public void actionPerformed(AnActionEvent e) { if (mySpeedSearch != null && mySpeedSearch.isPopupActive()) { diff --git a/platform/platform-impl/src/com/intellij/ui/SpeedSearchBase.java b/platform/platform-impl/src/com/intellij/ui/SpeedSearchBase.java index 7f29f725af9f..49615e70d6ed 100644 --- a/platform/platform-impl/src/com/intellij/ui/SpeedSearchBase.java +++ b/platform/platform-impl/src/com/intellij/ui/SpeedSearchBase.java @@ -276,6 +276,13 @@ public abstract class SpeedSearchBase extends SpeedSear return mySearchPopup != null ? mySearchPopup.mySearchField.getText() : null; } + public void setEnteredPrefix(@NotNull String text) { + if (mySearchPopup != null) { + mySearchPopup.mySearchField.setText(text); + mySearchPopup.refreshSelection(); + } + } + public void refreshSelection() { if ( mySearchPopup != null ) mySearchPopup.refreshSelection(); }