diff --git a/src/vs/code/electron-main/keyboard.ts b/src/vs/code/electron-main/keyboard.ts index 8ae8e354087ae14dcb19e178e34d489b60595d63..ae894658a6796a64c1595c64c1daf2beb0cb7186 100644 --- a/src/vs/code/electron-main/keyboard.ts +++ b/src/vs/code/electron-main/keyboard.ts @@ -108,10 +108,6 @@ export class KeybindingsResolver { private registerListeners(): void { - // Resolve keybindings when any first window is loaded - const onceOnWindowReady = once(this.windowsService.onWindowReady); - onceOnWindowReady(win => this.resolveKeybindings(win)); - // Listen to resolved keybindings from window ipc.on('vscode:keybindingsResolved', (event, rawKeybindings: string) => { let keybindings: IKeybinding[] = []; @@ -148,6 +144,10 @@ export class KeybindingsResolver { } }); + // Resolve keybindings when any first window is loaded + const onceOnWindowReady = once(this.windowsService.onWindowReady); + onceOnWindowReady(win => this.resolveKeybindings(win)); + // Resolve keybindings again when keybindings.json changes this.keybindingsWatcher.onDidUpdateConfiguration(() => this.resolveKeybindings()); diff --git a/src/vs/workbench/electron-browser/window.ts b/src/vs/workbench/electron-browser/window.ts index e8c81f8e2b43dc0ca87fb1474a465e2ac086e85e..444e7115e17d69a8b7fc2168a4ef56fda63d8053 100644 --- a/src/vs/workbench/electron-browser/window.ts +++ b/src/vs/workbench/electron-browser/window.ts @@ -341,7 +341,7 @@ export class ElectronWindow extends Themable { } private resolveKeybindings(actionIds: string[]): TPromise<{ id: string; label: string, isNative: boolean; }[]> { - return this.partService.joinCreation().then(() => { + return TPromise.join([this.partService.joinCreation(), this.extensionService.onReady()]).then(() => { return arrays.coalesce(actionIds.map(id => { const binding = this.keybindingService.lookupKeybinding(id); if (!binding) {