jdk/src/share/classes/javax/swing/JComboBox.java
changeset 23689 5571891e9b68
parent 22574 7f8ce0c8c20a
child 23715 54ae9dd9df73
--- a/jdk/src/share/classes/javax/swing/JComboBox.java	Fri Mar 21 16:51:53 2014 +0400
+++ b/jdk/src/share/classes/javax/swing/JComboBox.java	Fri Mar 21 17:17:16 2014 +0400
@@ -1417,6 +1417,28 @@
     }
 
     /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) {
+        if (super.processKeyBinding(ks, e, condition, pressed)) {
+            return true;
+        }
+
+        if (!isEditable() || condition != WHEN_FOCUSED || getEditor() == null
+                || !Boolean.TRUE.equals(getClientProperty("JComboBox.isTableCellEditor"))) {
+            return false;
+        }
+
+        Component editorComponent = getEditor().getEditorComponent();
+        if (editorComponent instanceof JComponent) {
+            JComponent component = (JComponent) editorComponent;
+            return component.processKeyBinding(ks, e, WHEN_FOCUSED, pressed);
+        }
+        return false;
+    }
+
+    /**
      * Sets the object that translates a keyboard character into a list
      * selection. Typically, the first selection with a matching first
      * character becomes the selected item.