diff --git a/src/browser/CoreBrowserTerminal.ts b/src/browser/CoreBrowserTerminal.ts index dca090f6..c26e6705 100644 --- a/src/browser/CoreBrowserTerminal.ts +++ b/src/browser/CoreBrowserTerminal.ts @@ -1113,8 +1113,8 @@ export class CoreBrowserTerminal extends CoreTerminal implements ITerminal { // HACK: Process A-Z in the keypress event to fix an issue with macOS IMEs where lower case // letters cannot be input while caps lock is on. Skip this hack when using kitty protocol - // as it needs to send proper CSI u sequences for all key events. - if (!this._keyboardService.useKitty && event.key && !event.ctrlKey && !event.altKey && !event.metaKey && event.key.length === 1) { + // or Win32 input mode as they need to send proper sequences for all key events. + if (!this._keyboardService.useKitty && !this._keyboardService.useWin32InputMode && event.key && !event.ctrlKey && !event.altKey && !event.metaKey && event.key.length === 1) { if (event.key.charCodeAt(0) >= 65 && event.key.charCodeAt(0) <= 90) { return true; } diff --git a/src/browser/services/Services.ts b/src/browser/services/Services.ts index cac62915..535afa64 100644 --- a/src/browser/services/Services.ts +++ b/src/browser/services/Services.ts @@ -163,4 +163,5 @@ export interface IKeyboardService { evaluateKeyDown(event: KeyboardEvent): IKeyboardResult; evaluateKeyUp(event: KeyboardEvent): IKeyboardResult | undefined; readonly useKitty: boolean; + readonly useWin32InputMode: boolean; }