diff --git a/platform/platform-api/src/com/intellij/openapi/keymap/KeymapUtil.java b/platform/platform-api/src/com/intellij/openapi/keymap/KeymapUtil.java index bbd9aa54985e..0e52ed6b3259 100644 --- a/platform/platform-api/src/com/intellij/openapi/keymap/KeymapUtil.java +++ b/platform/platform-api/src/com/intellij/openapi/keymap/KeymapUtil.java @@ -162,15 +162,31 @@ public class KeymapUtil { acceleratorText = getModifiersText(modifiers); } - final int code = accelerator.getKeyCode(); - String keyText = SystemInfo.isMac ? MacKeymapUtil.getKeyText(code) : KeyEvent.getKeyText(code); - // [vova] this is dirty fix for bug #35092 - if(CANCEL_KEY_TEXT.equals(keyText)){ - keyText = BREAK_KEY_TEXT; + acceleratorText += getKeyText(accelerator.getKeyCode()); + return acceleratorText.trim(); + } + + public static String getKeyText(int code) { + switch (code) { + case KeyEvent.VK_BACK_QUOTE: return "`"; + case KeyEvent.VK_ADD: return "+"; + case KeyEvent.VK_SEPARATOR: return ","; + case KeyEvent.VK_SUBTRACT: return "-"; + case KeyEvent.VK_DECIMAL: return "."; + case KeyEvent.VK_SLASH: return "/"; + case KeyEvent.VK_BACK_SLASH: return "\\"; + case KeyEvent.VK_PERIOD: return "."; + case KeyEvent.VK_SEMICOLON: return ";"; + case KeyEvent.VK_CLOSE_BRACKET: return "]"; + case KeyEvent.VK_OPEN_BRACKET: return "["; + case KeyEvent.VK_EQUALS: return "="; + case KeyEvent.VK_MINUS: return "-"; + case KeyEvent.VK_PLUS: return "+"; } - acceleratorText += keyText; - return acceleratorText.trim(); + String result = SystemInfo.isMac ? MacKeymapUtil.getKeyText(code) : KeyEvent.getKeyText(code); + // [vova] this is dirty fix for bug #35092 + return CANCEL_KEY_TEXT.equals(result) ? BREAK_KEY_TEXT : result; } private static String getModifiersText(@JdkConstants.InputEventMask int modifiers) { diff --git a/platform/platform-api/src/com/intellij/openapi/keymap/MacKeymapUtil.java b/platform/platform-api/src/com/intellij/openapi/keymap/MacKeymapUtil.java index c9d07960640e..d0eb98676d98 100644 --- a/platform/platform-api/src/com/intellij/openapi/keymap/MacKeymapUtil.java +++ b/platform/platform-api/src/com/intellij/openapi/keymap/MacKeymapUtil.java @@ -88,13 +88,8 @@ public class MacKeymapUtil { case KeyEvent.VK_RIGHT: return get(RIGHT, "Right Arrow"); case KeyEvent.VK_NUM_LOCK: return get(NUMBER_LOCK, "Num Lock"); case KeyEvent.VK_ENTER: return get(RETURN, "Return"); - case KeyEvent.VK_BACK_QUOTE: return "`"; case KeyEvent.VK_NUMBER_SIGN: return get(NUM_PAD, "NumPad"); case KeyEvent.VK_MULTIPLY: return get(NUM_PAD, "NumPad") + " *"; - case KeyEvent.VK_ADD: return "+"; - case KeyEvent.VK_SEPARATOR: return ","; - case KeyEvent.VK_SUBTRACT: return "-"; - case KeyEvent.VK_DECIMAL: return "."; case KeyEvent.VK_DIVIDE: return "NumPad /"; case KeyEvent.VK_NUMPAD0: return "0"; case KeyEvent.VK_NUMPAD1: return "1"; @@ -106,15 +101,6 @@ public class MacKeymapUtil { case KeyEvent.VK_NUMPAD7: return "7"; case KeyEvent.VK_NUMPAD8: return "8"; case KeyEvent.VK_NUMPAD9: return "9"; - case KeyEvent.VK_SLASH: return "/"; - case KeyEvent.VK_BACK_SLASH: return "\\"; - case KeyEvent.VK_PERIOD: return "."; - case KeyEvent.VK_SEMICOLON: return ";"; - case KeyEvent.VK_CLOSE_BRACKET: return "]"; - case KeyEvent.VK_OPEN_BRACKET: return "["; - case KeyEvent.VK_EQUALS: return "="; - case KeyEvent.VK_MINUS: return "-"; - case KeyEvent.VK_PLUS: return "+"; case 0: return "fn"; } return KeyEvent.getKeyText(code); @@ -122,7 +108,7 @@ public class MacKeymapUtil { public static String getKeyStrokeText(KeyStroke keyStroke) { final String modifiers = getModifiersText(keyStroke.getModifiers()); - final String key = getKeyText(keyStroke.getKeyCode()); + final String key = KeymapUtil.getKeyText(keyStroke.getKeyCode()); return modifiers + key; }