diff --git a/src/vs/platform/list/browser/listService.ts b/src/vs/platform/list/browser/listService.ts index c885cca5e51..3847287678b 100644 --- a/src/vs/platform/list/browser/listService.ts +++ b/src/vs/platform/list/browser/listService.ts @@ -719,7 +719,11 @@ export class TreeResourceNavigator2 extends Disposable { const isMouseEvent = e.browserEvent && e.browserEvent instanceof MouseEvent; if (!isMouseEvent) { - this.open(true, false, false, e.browserEvent); + const preserveFocus = (e.browserEvent instanceof KeyboardEvent && typeof (e.browserEvent).preserveFocus === 'boolean') ? + !!(e.browserEvent).preserveFocus : + true; + + this.open(preserveFocus, false, false, e.browserEvent); } } diff --git a/src/vs/workbench/contrib/search/browser/searchView.ts b/src/vs/workbench/contrib/search/browser/searchView.ts index 242447cfc92..77335ea480e 100644 --- a/src/vs/workbench/contrib/search/browser/searchView.ts +++ b/src/vs/workbench/contrib/search/browser/searchView.ts @@ -12,7 +12,7 @@ import { ITreeContextMenuEvent, ITreeElement } from 'vs/base/browser/ui/tree/tre import { IAction } from 'vs/base/common/actions'; import { Delayer } from 'vs/base/common/async'; import * as errors from 'vs/base/common/errors'; -import { Emitter, Event } from 'vs/base/common/event'; +import { Event } from 'vs/base/common/event'; import { Iterator } from 'vs/base/common/iterator'; import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; import { dispose, IDisposable } from 'vs/base/common/lifecycle'; @@ -117,7 +117,6 @@ export class SearchView extends ViewletPanel { private currentSelectedFileMatch: FileMatch | undefined; - private readonly selectCurrentMatchEmitter: Emitter; private delayedRefresh: Delayer; private changedWhileHidden: boolean; @@ -175,10 +174,6 @@ export class SearchView extends ViewletPanel { this._register(this.contextService.onDidChangeWorkbenchState(() => this.onDidChangeWorkbenchState())); this._register(this.searchHistoryService.onDidClearHistory(() => this.clearHistory())); - this.selectCurrentMatchEmitter = this._register(new Emitter()); - this._register(Event.debounce(this.selectCurrentMatchEmitter.event, (l, e) => e, 100, /*leading=*/true) - (() => this.selectCurrentMatch())); - this.delayedRefresh = this._register(new Delayer(250)); this.actions = [ @@ -702,12 +697,6 @@ export class SearchView extends ViewletPanel { }); } - selectCurrentMatch(): void { - const focused = this.tree.getFocus()[0]; - const fakeKeyboardEvent = getSelectionKeyboardEvent(undefined, false); - this.tree.setSelection([focused], fakeKeyboardEvent); - } - selectNextMatch(): void { const [selected] = this.tree.getSelection(); @@ -741,7 +730,6 @@ export class SearchView extends ViewletPanel { if (next) { this.tree.setFocus([next], getSelectionKeyboardEvent(undefined, false)); this.tree.reveal(next); - this.selectCurrentMatchEmitter.fire(undefined); } } @@ -781,7 +769,6 @@ export class SearchView extends ViewletPanel { if (prev) { this.tree.setFocus([prev], getSelectionKeyboardEvent(undefined, false)); this.tree.reveal(prev); - this.selectCurrentMatchEmitter.fire(undefined); } }