From 9119efe2efa9681bd014bb8560735f97f7076ca6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Fri, 31 Jul 2020 10:32:12 +0200 Subject: [PATCH] fixes #102498 --- .../contrib/scm/browser/scmViewPane.ts | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/scm/browser/scmViewPane.ts b/src/vs/workbench/contrib/scm/browser/scmViewPane.ts index a0fc59fce93..006c48b3a7b 100644 --- a/src/vs/workbench/contrib/scm/browser/scmViewPane.ts +++ b/src/vs/workbench/contrib/scm/browser/scmViewPane.ts @@ -299,7 +299,6 @@ class InputRenderer implements ICompressibleTreeRenderer templateData.inputWidget.input = undefined }); // Remember widget this.inputWidgets.set(input, templateData.inputWidget); @@ -354,6 +353,16 @@ class InputRenderer implements ICompressibleTreeRenderer this.render(item))); } + if (focusedInput) { + const inputWidget = this.inputRenderer.getRenderedInputWidget(focusedInput); + + if (inputWidget) { + inputWidget.focus(); + } + } + this._onDidChangeRepositoryCollapseState.fire(); } @@ -1294,6 +1313,10 @@ class SCMInputWidget extends Disposable { } set input(input: ISCMInput | undefined) { + if (input === this.input) { + return; + } + this.validationDisposable.dispose(); removeClass(this.editorContainer, 'synthetic-focus'); @@ -1492,6 +1515,10 @@ class SCMInputWidget extends Disposable { addClass(this.editorContainer, 'synthetic-focus'); } + hasFocus(): boolean { + return this.inputEditor.hasWidgetFocus(); + } + private renderValidation(): void { this.validationDisposable.dispose(); @@ -1533,6 +1560,7 @@ class SCMInputWidget extends Disposable { } dispose(): void { + this.input = undefined; this.repositoryDisposables.dispose(); this.validationDisposable.dispose(); super.dispose();