diff --git a/src/vs/workbench/services/keybinding/common/windowsKeyboardMapper.ts b/src/vs/workbench/services/keybinding/common/windowsKeyboardMapper.ts index 4def812759815cc78e2b92b17ddf384b8c0c6c1f..c3990c4f0e6255f5b8c1f3ac2cefe3e0d4178ab2 100644 --- a/src/vs/workbench/services/keybinding/common/windowsKeyboardMapper.ts +++ b/src/vs/workbench/services/keybinding/common/windowsKeyboardMapper.ts @@ -66,32 +66,11 @@ export class WindowsNativeResolvedKeybinding extends BaseResolvedKeybinding= KeyCode.NUMPAD_0 && keyCode <= KeyCode.NUMPAD_DIVIDE) { - // Electron cannot handle numpad keys - return null; - } - - switch (keyCode) { - case KeyCode.UpArrow: - return 'Up'; - case KeyCode.DownArrow: - return 'Down'; - case KeyCode.LeftArrow: - return 'Left'; - case KeyCode.RightArrow: - return 'Right'; - } - - // electron menus always do the correct rendering on Windows - return KeyCodeUtils.toString(keyCode); - } - protected _getElectronAccelerator(keybinding: SimpleKeybinding): string | null { if (keybinding.isDuplicateModifierCase()) { return null; } - return this._keyCodeToElectronAccelerator(keybinding.keyCode); + return this._mapper.getElectronAcceleratorForKeyBinding(keybinding); } protected _getUserSettingsLabel(keybinding: SimpleKeybinding): string | null { @@ -409,6 +388,31 @@ export class WindowsKeyboardMapper implements IKeyboardMapper { return KeyCodeUtils.toUserSettingsGeneral(keyCode); } + public getElectronAcceleratorForKeyBinding(keybinding: SimpleKeybinding): string | null { + return this._keyCodeToElectronAccelerator(keybinding.keyCode); + } + + private _keyCodeToElectronAccelerator(keyCode: KeyCode): string | null { + if (keyCode >= KeyCode.NUMPAD_0 && keyCode <= KeyCode.NUMPAD_DIVIDE) { + // Electron cannot handle numpad keys + return null; + } + + switch (keyCode) { + case KeyCode.UpArrow: + return 'Up'; + case KeyCode.DownArrow: + return 'Down'; + case KeyCode.LeftArrow: + return 'Left'; + case KeyCode.RightArrow: + return 'Right'; + } + + // electron menus always do the correct rendering on Windows + return KeyCodeUtils.toString(keyCode); + } + private _getLabelForKeyCode(keyCode: KeyCode): string { return this._keyCodeToLabel[keyCode] || KeyCodeUtils.toString(KeyCode.Unknown); }