From beabc815d6dc5c91a02cde89fd0bbaacbc111e90 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Thu, 21 Feb 2019 17:43:20 +0100 Subject: [PATCH] Fixes #69146 --- .../keybinding/common/macLinuxKeyboardMapper.ts | 11 ++++++++--- .../test/macLinuxFallbackKeyboardMapper.test.ts | 4 ++++ .../keybinding/test/macLinuxKeyboardMapper.test.ts | 4 ++++ .../keybinding/test/windowsKeyboardMapper.test.ts | 4 ++++ 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.ts b/src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.ts index 16481ba5b63..500bc1a837d 100644 --- a/src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.ts +++ b/src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.ts @@ -967,6 +967,13 @@ export class MacLinuxKeyboardMapper implements IKeyboardMapper { for (let part of keybinding.parts) { chordParts.push(this.simpleKeybindingToScanCodeBinding(part)); } + return this._toResolvedKeybinding(chordParts); + } + + private _toResolvedKeybinding(chordParts: ScanCodeBinding[][]): NativeResolvedKeybinding[] { + if (chordParts.length === 0) { + return []; + } let result: NativeResolvedKeybinding[] = []; this._generateResolvedKeybindings(chordParts, 0, [], result); return result; @@ -1055,9 +1062,7 @@ export class MacLinuxKeyboardMapper implements IKeyboardMapper { public resolveUserBinding(input: (SimpleKeybinding | ScanCodeBinding)[]): ResolvedKeybinding[] { const parts: ScanCodeBinding[][] = input.map(keybinding => this._resolveSimpleUserBinding(keybinding)); - let result: NativeResolvedKeybinding[] = []; - this._generateResolvedKeybindings(parts, 0, [], result); - return result; + return this._toResolvedKeybinding(parts); } private static _charCodeToKb(charCode: number): { keyCode: KeyCode; shiftKey: boolean } | null { diff --git a/src/vs/workbench/services/keybinding/test/macLinuxFallbackKeyboardMapper.test.ts b/src/vs/workbench/services/keybinding/test/macLinuxFallbackKeyboardMapper.test.ts index 00fe9173b49..4695237586e 100644 --- a/src/vs/workbench/services/keybinding/test/macLinuxFallbackKeyboardMapper.test.ts +++ b/src/vs/workbench/services/keybinding/test/macLinuxFallbackKeyboardMapper.test.ts @@ -70,6 +70,10 @@ suite('keyboardMapper - MAC fallback', () => { ); }); + test('resolveUserBinding empty', () => { + assertResolveUserBinding(mapper, [], []); + }); + test('resolveUserBinding Cmd+[Comma] Cmd+/', () => { assertResolveUserBinding( mapper, [ diff --git a/src/vs/workbench/services/keybinding/test/macLinuxKeyboardMapper.test.ts b/src/vs/workbench/services/keybinding/test/macLinuxKeyboardMapper.test.ts index d9967e815df..c2c1f2e66aa 100644 --- a/src/vs/workbench/services/keybinding/test/macLinuxKeyboardMapper.test.ts +++ b/src/vs/workbench/services/keybinding/test/macLinuxKeyboardMapper.test.ts @@ -304,6 +304,10 @@ suite('keyboardMapper - MAC de_ch', () => { ); }); + test('resolveUserBinding empty', () => { + assertResolveUserBinding(mapper, [], []); + }); + test('resolveUserBinding Cmd+[Comma] Cmd+/', () => { assertResolveUserBinding( mapper, diff --git a/src/vs/workbench/services/keybinding/test/windowsKeyboardMapper.test.ts b/src/vs/workbench/services/keybinding/test/windowsKeyboardMapper.test.ts index 5592512f9b1..d70546d7311 100644 --- a/src/vs/workbench/services/keybinding/test/windowsKeyboardMapper.test.ts +++ b/src/vs/workbench/services/keybinding/test/windowsKeyboardMapper.test.ts @@ -270,6 +270,10 @@ suite('keyboardMapper - WINDOWS de_ch', () => { ); }); + test('resolveUserBinding empty', () => { + assertResolveUserBinding(mapper, [], []); + }); + test('resolveUserBinding Ctrl+[Comma] Ctrl+/', () => { assertResolveUserBinding( mapper, [ -- GitLab