Show Backtick as '`', Equals as '=', Minus as '-' in shortcuts on linux and windows

This commit is contained in:
Alexander Zolotov
2017-11-16 19:39:56 +03:00
parent 5bca51b500
commit 58cfa36eb0
2 changed files with 24 additions and 22 deletions
@@ -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) {
@@ -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;
}