From 894dca7f76529f0abbef44c2cd5dc45f36eb4a9f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 28 Mar 2025 13:26:09 +1100 Subject: [PATCH] UI: correct the keymap editor to match the OSKEY label to the platform --- scripts/modules/rna_keymap_ui.py | 14 +++++++++++++- source/blender/windowmanager/intern/wm_keymap.cc | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/scripts/modules/rna_keymap_ui.py b/scripts/modules/rna_keymap_ui.py index 29e1221bda3..8d257085d26 100644 --- a/scripts/modules/rna_keymap_ui.py +++ b/scripts/modules/rna_keymap_ui.py @@ -175,6 +175,8 @@ def draw_kmi(display_keymaps, kc, km, kmi, layout, level): sub.prop(kmi, "idname", text="") if map_type not in {'TEXTINPUT', 'TIMER'}: + from sys import platform + sub = split.column() subrow = sub.row(align=True) @@ -195,11 +197,21 @@ def draw_kmi(display_keymaps, kc, km, kmi, layout, level): subrow = sub.row() subrow.scale_x = 0.75 subrow.prop(kmi, "any", toggle=True) + + # Match text in `WM_key_event_string`. + match platform: + case "darwin": + oskey_label = "Cmd" + case "win32": + oskey_label = "Win" + case _: + oskey_label = "OS" + # Use `*_ui` properties as integers aren't practical. subrow.prop(kmi, "shift_ui", toggle=True) subrow.prop(kmi, "ctrl_ui", toggle=True) subrow.prop(kmi, "alt_ui", toggle=True) - subrow.prop(kmi, "oskey_ui", text="Cmd", toggle=True) + subrow.prop(kmi, "oskey_ui", text=oskey_label, toggle=True) # On systems that don't support Hyper, only show if it's enabled. # Otherwise the user may have a key binding that doesn't work and can't be changed. diff --git a/source/blender/windowmanager/intern/wm_keymap.cc b/source/blender/windowmanager/intern/wm_keymap.cc index 7db65eac582..19fa1b6990a 100644 --- a/source/blender/windowmanager/intern/wm_keymap.cc +++ b/source/blender/windowmanager/intern/wm_keymap.cc @@ -1134,6 +1134,7 @@ const char *WM_key_event_string(const short type, const bool compact) return key_event_glyph_or_text(font_id, IFACE_("Alt"), single_glyph); } case EVT_OSKEY: { + /* Keep these labels in sync with: `scripts/modules/rna_keymap_ui.py`. */ if (platform == MACOS) { return key_event_glyph_or_text( font_id, IFACE_("Cmd"), BLI_STR_UTF8_PLACE_OF_INTEREST_SIGN);