diff --git a/src/main/java/dev/railroadide/railroad/settings/keybinds/KeyComboNode.java b/src/main/java/dev/railroadide/railroad/settings/keybinds/KeyComboNode.java index 2f5d9d95..83221b73 100644 --- a/src/main/java/dev/railroadide/railroad/settings/keybinds/KeyComboNode.java +++ b/src/main/java/dev/railroadide/railroad/settings/keybinds/KeyComboNode.java @@ -64,6 +64,17 @@ private void handleKeyPressed(KeyEvent event) { if (event.isControlDown()) modifiers.add(KeyCombination.CONTROL_DOWN); if (event.isAltDown()) modifiers.add(KeyCombination.ALT_DOWN); if (event.isShiftDown()) modifiers.add(KeyCombination.SHIFT_DOWN); + if (event.isMetaDown()) modifiers.add(KeyCombination.META_DOWN); + + if (OperatingSystem.isMac()) { + if (event.isMetaDown()) { + modifiers.remove(KeyCombination.SHORTCUT_DOWN); + } + } else { + if (event.isControlDown()) { + modifiers.remove(KeyCombination.SHORTCUT_DOWN); + } + } pendingModifiers = modifiers.isEmpty() ? null : modifiers.toArray(new KeyCombination.Modifier[0]); } @@ -126,6 +137,7 @@ private void updateLabel() { private String localizeModifier(KeyCombination.Modifier modifier) { return switch (modifier.getKey()) { case SHORTCUT -> OperatingSystem.isMac() ? "⌘" : "Ctrl"; + case META -> "⌘"; case CONTROL -> "Ctrl"; case ALT -> OperatingSystem.isMac() ? "⌥" : "Alt"; case SHIFT -> "Shift";