Skip to content

Commit b6df2fc

Browse files
committed
Let KeyCode.get(String) fall back to get(char)
This makes KeyCode.get(String) behave less surprisingly: e.g., KeyCode.get("a") now returns KeyCode.A instead of KeyCode.UNDEFINED.
1 parent a012ce1 commit b6df2fc

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

src/main/java/org/scijava/input/KeyCode.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -719,8 +719,10 @@ public static KeyCode get(final char c) {
719719
*/
720720
public static KeyCode get(final String name) {
721721
final KeyCode keyCode = NAMES.get(name);
722-
if (keyCode == null) return UNDEFINED;
723-
return keyCode;
722+
if (keyCode != null) return keyCode;
723+
// Not a code name, but maybe a direct character value?
724+
if (name.length() == 1) return KeyCode.get(name.charAt(0));
725+
return UNDEFINED;
724726
}
725727

726728
}

src/test/java/org/scijava/input/KeyCodeTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,11 @@ public void testGetString() {
8181
assertEquals(KeyCode.A, KeyCode.get("A"));
8282
assertEquals(KeyCode.Z, KeyCode.get("Z"));
8383

84+
// The next ones should fall back to get(char).
85+
assertEquals(KeyCode.NUM0, KeyCode.get("0"));
86+
assertEquals(KeyCode.A, KeyCode.get("a"));
87+
assertEquals(KeyCode.Z, KeyCode.get("z"));
88+
8489
assertEquals(KeyCode.UNDEFINED, KeyCode.get("UNDEFINED"));
8590
assertEquals(KeyCode.UNDEFINED, KeyCode.get(""));
8691
assertEquals(KeyCode.UNDEFINED, KeyCode.get("aa"));

0 commit comments

Comments
 (0)