summaryrefslogtreecommitdiff
path: root/platform/platform-impl/src/com/intellij/openapi/keymap/impl/IdeKeyEventDispatcher.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/platform-impl/src/com/intellij/openapi/keymap/impl/IdeKeyEventDispatcher.java')
-rw-r--r--platform/platform-impl/src/com/intellij/openapi/keymap/impl/IdeKeyEventDispatcher.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/platform/platform-impl/src/com/intellij/openapi/keymap/impl/IdeKeyEventDispatcher.java b/platform/platform-impl/src/com/intellij/openapi/keymap/impl/IdeKeyEventDispatcher.java
index 9a566e9915ef..72e24d626535 100644
--- a/platform/platform-impl/src/com/intellij/openapi/keymap/impl/IdeKeyEventDispatcher.java
+++ b/platform/platform-impl/src/com/intellij/openapi/keymap/impl/IdeKeyEventDispatcher.java
@@ -55,6 +55,7 @@ import com.intellij.ui.ComponentWithMnemonics;
import com.intellij.ui.SimpleTextAttributes;
import com.intellij.ui.components.JBOptionButton;
import com.intellij.ui.popup.list.ListPopupImpl;
+import com.intellij.ui.speedSearch.SpeedSearchSupply;
import com.intellij.util.Alarm;
import com.intellij.util.Processor;
import com.intellij.util.containers.ContainerUtil;
@@ -140,6 +141,10 @@ public final class IdeKeyEventDispatcher implements Disposable {
return false;
}
+ if (isSpeedSearchEditing(e)) {
+ return false;
+ }
+
// http://www.jetbrains.net/jira/browse/IDEADEV-12372
if (e.getKeyCode() == KeyEvent.VK_CONTROL) {
if (e.getID() == KeyEvent.KEY_PRESSED) {
@@ -226,6 +231,18 @@ public final class IdeKeyEventDispatcher implements Disposable {
}
}
+ private static boolean isSpeedSearchEditing(KeyEvent e) {
+ int keyCode = e.getKeyCode();
+ if (keyCode == KeyEvent.VK_BACK_SPACE) {
+ Component owner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();
+ if (owner instanceof JComponent) {
+ SpeedSearchSupply supply = SpeedSearchSupply.getSupply((JComponent)owner);
+ return supply != null && supply.isPopupActive();
+ }
+ }
+ return false;
+ }
+
/**
* @return <code>true</code> if and only if the <code>component</code> represents
* modal context.