Merge branch 'net212-trl-transf-fix-btn' into master
authorSasha Blashenkov <Sasha.Blashenkov@jetbrains.com>
Thu, 13 May 2021 12:44:16 +0000 (15:44 +0300)
committerintellij-monorepo-bot <intellij-monorepo-bot-no-reply@jetbrains.com>
Thu, 13 May 2021 12:44:16 +0000 (12:44 +0000)
GitOrigin-RevId: 66bfc0b64449453edb52764286ee41e5e1db2937

platform/platform-api/src/com/intellij/openapi/keymap/MacKeymapUtil.java

index 6c6a135e9dc18f99493616878f126ce0f8563aa4..48d9868095d65371acc960dd9cbcb23b6ce0021c 100644 (file)
@@ -10,6 +10,7 @@ import javax.swing.*;
 import java.awt.*;
 import java.awt.event.InputEvent;
 import java.awt.event.KeyEvent;
+import java.util.StringJoiner;
 
 /**
  * Utility class to display action shortcuts in Mac menus
@@ -47,18 +48,24 @@ public final class MacKeymapUtil {
   public static final String NUM_PAD     = "\u2328";
 
   @NotNull
-  static String getModifiersText(@JdkConstants.InputEventMask int modifiers) {
-    StringBuilder buf = new StringBuilder();
-    if ((modifiers & InputEvent.CTRL_MASK) != 0) buf.append(get(CONTROL, "Ctrl+"));
-    if ((modifiers & InputEvent.ALT_MASK) != 0) buf.append(get(OPTION, "Alt+"));
-    if ((modifiers & InputEvent.SHIFT_MASK) != 0) buf.append(get(SHIFT, "Shift+"));
-    if ((modifiers & InputEvent.ALT_GRAPH_MASK) != 0) buf.append(Toolkit.getProperty("AWT.altGraph", "Alt Graph"));
-    if ((modifiers & InputEvent.BUTTON1_MASK) != 0) buf.append(Toolkit.getProperty("AWT.button1", "Button1"));
-    if ((modifiers & InputEvent.META_MASK) != 0) buf.append(get(COMMAND, "Cmd+"));
+  static String getModifiersText(@JdkConstants.InputEventMask int modifiers, String delimiter) {
+    StringJoiner buf = new StringJoiner(delimiter != null ? delimiter : "");
+    if ((modifiers & InputEvent.CTRL_MASK) != 0) buf.add(get(CONTROL, "Ctrl+"));
+    if ((modifiers & InputEvent.ALT_MASK) != 0) buf.add(get(OPTION, "Alt+"));
+    if ((modifiers & InputEvent.SHIFT_MASK) != 0) buf.add(get(SHIFT, "Shift+"));
+    if ((modifiers & InputEvent.ALT_GRAPH_MASK) != 0) buf.add(Toolkit.getProperty("AWT.altGraph", "Alt Graph"));
+    if ((modifiers & InputEvent.BUTTON1_MASK) != 0) buf.add(Toolkit.getProperty("AWT.button1", "Button1"));
+    if ((modifiers & InputEvent.META_MASK) != 0) buf.add(get(COMMAND, "Cmd+"));
+
     return buf.toString();
 
   }
 
+  @NotNull
+  static String getModifiersText(@JdkConstants.InputEventMask int modifiers) {
+    return getModifiersText(modifiers, null);
+  }
+
   @NotNull
   public static String getKeyText(int code) {
     if (!Registry.is("ide.macos.disable.native.shortcut.symbols", false)) {
@@ -103,12 +110,26 @@ public final class MacKeymapUtil {
   }
 
   @NotNull
-  public static String getKeyStrokeText(@NotNull KeyStroke keyStroke) {
-    final String modifiers = getModifiersText(keyStroke.getModifiers());
+  public static String getKeyStrokeText(@NotNull KeyStroke keyStroke, String delimiter, boolean onlyDelimIntoModifiersAndKey) {
+    String modifiers = getModifiersText(keyStroke.getModifiers());
     final String key = KeymapUtil.getKeyText(keyStroke.getKeyCode());
+
+    if (!onlyDelimIntoModifiersAndKey) {
+      modifiers = getModifiersText(keyStroke.getModifiers(), delimiter);
+    }
+
+    if (delimiter != null) {
+      if (modifiers.isEmpty()) return key;
+      return modifiers + delimiter + key;
+    }
     return modifiers + key;
   }
 
+  @NotNull
+  public static String getKeyStrokeText(@NotNull KeyStroke keyStroke) {
+    return getKeyStrokeText(keyStroke, null, true);
+  }
+
   @NotNull
   private static String get(@NotNull String value, @NotNull String replacement) {
     if (Registry.is("ide.macos.disable.native.shortcut.symbols", false)) {