From f0bcccdcb6c501b6854eb94f806b2e85dfb99e2a Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Sun, 12 Apr 2026 00:37:36 +0200 Subject: [PATCH] auto-git: [change] src/app/App.tsx --- src/app/App.tsx | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/app/App.tsx b/src/app/App.tsx index 4fd0397b..628c6a1a 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -986,6 +986,29 @@ function getWhiteboxSelectionModeStatus(mode: WhiteboxSelectionMode): string { } } +function resolveWhiteboxSelectionModeShortcut( + event: globalThis.KeyboardEvent +): WhiteboxSelectionMode | null { + if (event.altKey || event.ctrlKey || event.metaKey) { + return null; + } + + if (event.key === "^" || (event.shiftKey && event.code === "Digit6")) { + return "object"; + } + + switch (event.code) { + case "Digit1": + return "face"; + case "Digit2": + return "edge"; + case "Digit3": + return "vertex"; + default: + return null; + } +} + function getInteractionTriggerLabel(trigger: InteractionTriggerKind): string { switch (trigger) { case "enter": @@ -2780,6 +2803,15 @@ export function App({ store, initialStatusMessage }: AppProps) { beginTransformOperation(transformOperation, "keyboard"); return; } + + const whiteboxSelectionModeShortcut = + resolveWhiteboxSelectionModeShortcut(event); + + if (whiteboxSelectionModeShortcut !== null) { + event.preventDefault(); + handleWhiteboxSelectionModeChange(whiteboxSelectionModeShortcut); + return; + } } const isDeletionKey = event.key === "Delete" || event.key === "Backspace";