diff --git a/crates/ui-egui/src/dialogs/command_search.rs b/crates/ui-egui/src/dialogs/command_search.rs index c2396b345..7a80985b3 100644 --- a/crates/ui-egui/src/dialogs/command_search.rs +++ b/crates/ui-egui/src/dialogs/command_search.rs @@ -38,6 +38,9 @@ pub(super) fn command_search(app: &mut SheetApp, ui: &mut egui::Ui, d: &mut Dial (false, "edit.pasteSpecial", Some(_)) => Some("Ctrl+Alt+V".to_owned()), // These metadata shortcuts are only bound on macOS. (false, "home.alignLeft" | "home.alignCenter", Some(_)) => None, + // macOS uses Command+Shift+K/J, unlike the engine's Windows metadata. + (true, "data.group", Some(_)) => Some("Cmd+Shift+K".to_owned()), + (true, "data.ungroup", Some(_)) => Some("Cmd+Shift+J".to_owned()), (_, _, keys) => keys.map(str::to_string), }, ) diff --git a/crates/ui-egui/tests/it/dialog_focus.rs b/crates/ui-egui/tests/it/dialog_focus.rs index f3c5db9ec..53fb6c933 100644 --- a/crates/ui-egui/tests/it/dialog_focus.rs +++ b/crates/ui-egui/tests/it/dialog_focus.rs @@ -104,6 +104,8 @@ fn command_search_shows_engine_shortcuts() { ("home.alignCenter", if os == OperatingSystem::Mac { "Center (Cmd+E)" } else { "Center Home" }), ("selection.row", "Select Entire Row (Shift+Space)"), ("selection.column", "Select Entire Column (Ctrl+Space)"), + ("data.group", if os == OperatingSystem::Mac { "Group (Cmd+Shift+K)" } else { "Group (Alt+Shift+Right)" }), + ("data.ungroup", if os == OperatingSystem::Mac { "Ungroup (Cmd+Shift+J)" } else { "Ungroup (Alt+Shift+Left)" }), ] { h.state_mut().dialog.as_mut().unwrap().search = query.into(); h.run_steps(3); @@ -152,6 +154,8 @@ fn command_palette_shortcuts_come_from_engine_metadata() { ("selection.currentRegion", "Ctrl+Shift+8"), ("home.alignLeft", "Cmd+L"), ("home.alignCenter", "Cmd+E"), + ("data.group", "Alt+Shift+Right"), + ("data.ungroup", "Alt+Shift+Left"), ] { let command = commands.iter().find(|c| c.id == id).unwrap(); assert_eq!(command.shortcut, Some(expected), "{id}");