diff --git a/web/src/client/components/session-view/input-manager.ts b/web/src/client/components/session-view/input-manager.ts index 648aec24..e951106f 100644 --- a/web/src/client/components/session-view/input-manager.ts +++ b/web/src/client/components/session-view/input-manager.ts @@ -257,14 +257,18 @@ export class InputManager { } isKeyboardShortcut(e: KeyboardEvent): boolean { - // Check if we're typing in an input field + // Check if we're typing in an input field or editor const target = e.target as HTMLElement; if ( target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || - target.tagName === 'SELECT' + target.tagName === 'SELECT' || + target.contentEditable === 'true' || + target.closest('.monaco-editor') || + target.closest('[data-keybinding-context]') || + target.closest('.editor-container') ) { - // Allow normal input in form fields + // Allow normal input in form fields and editors return false; } diff --git a/web/src/client/components/terminal-quick-keys.ts b/web/src/client/components/terminal-quick-keys.ts index da39f005..eafa54a5 100644 --- a/web/src/client/components/terminal-quick-keys.ts +++ b/web/src/client/components/terminal-quick-keys.ts @@ -9,6 +9,7 @@ const TERMINAL_QUICK_KEYS = [ { key: 'CtrlExpand', label: '⌃', toggle: true, row: 1 }, { key: 'F', label: 'F', toggle: true, row: 1 }, { key: 'Tab', label: 'Tab', row: 1 }, + { key: 'shift_tab', label: '⇤', row: 1 }, { key: 'ArrowUp', label: '↑', arrow: true, row: 1 }, { key: 'ArrowDown', label: '↓', arrow: true, row: 1 }, { key: 'ArrowLeft', label: '←', arrow: true, row: 1 },