diff --git a/src/vs/workbench/common/views.ts b/src/vs/workbench/common/views.ts index 8726ead6be51..f9744306895a 100644 --- a/src/vs/workbench/common/views.ts +++ b/src/vs/workbench/common/views.ts @@ -465,6 +465,8 @@ export interface IView { readonly id: string; + focus(): void; + isVisible(): boolean; isBodyVisible(): boolean; diff --git a/src/vs/workbench/contrib/scm/browser/scm.contribution.ts b/src/vs/workbench/contrib/scm/browser/scm.contribution.ts index 0f3f696791ef..17ebb59d1ffc 100644 --- a/src/vs/workbench/contrib/scm/browser/scm.contribution.ts +++ b/src/vs/workbench/contrib/scm/browser/scm.contribution.ts @@ -74,14 +74,10 @@ KeybindingsRegistry.registerCommandAndKeybindingRule({ win: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_G }, linux: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_G }, mac: { primary: KeyMod.WinCtrl | KeyMod.Shift | KeyCode.KEY_G }, - handler: accessor => { + handler: async accessor => { const viewsService = accessor.get(IViewsService); - - if (viewsService.isViewVisible(VIEW_PANE_ID)) { - viewsService.closeView(VIEW_PANE_ID); - } else { - viewsService.openView(VIEW_PANE_ID); - } + const view = await viewsService.openView(VIEW_PANE_ID); + view?.focus(); } });