diff --git a/src/vs/base/browser/ui/list/listWidget.ts b/src/vs/base/browser/ui/list/listWidget.ts index d297818a787..a2369887693 100644 --- a/src/vs/base/browser/ui/list/listWidget.ts +++ b/src/vs/base/browser/ui/list/listWidget.ts @@ -904,7 +904,7 @@ export class List implements ISpliceable, IDisposable { this.onDidFocus = mapEvent(domEvent(this.view.domNode, 'focus', true), () => null); this.onDidBlur = mapEvent(domEvent(this.view.domNode, 'blur', true), () => null); - + this.onDidFocus(() => this.focusFirstItemIfNothingFocused(), this, this.disposables); this.disposables.push(new DOMFocusController(this, this.view)); if (typeof options.keyboardSupport !== 'boolean' || options.keyboardSupport) { @@ -952,6 +952,12 @@ export class List implements ISpliceable, IDisposable { this.view.setScrollTop(scrollTop); } + private focusFirstItemIfNothingFocused() { + if (this.getSelection().length === 0 && this.getFocus().length === 0) { + this.focusFirst(); + } + } + domFocus(): void { this.view.domNode.focus(); } diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts index 4a3e0cd9828..ab2bfa52461 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.ts @@ -478,7 +478,7 @@ export class ExtensionsViewlet extends ViewContainerViewlet implements IExtensio } private focusListView(): void { - this.panels[0].focus(); + (this.panels[0]).focus(); } private onViewletOpen(viewlet: IViewlet): void { diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts index b2138e2ede2..2d45341934b 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionsViews.ts @@ -645,9 +645,6 @@ export class ExtensionsListView extends ViewletPanel { focus(): void { super.focus(); this.list.domFocus(); - if (this.list.getSelection().length === 0 && this.list.getFocus().length === 0) { - this.list.focusNext(); - } } }