diff --git a/src/vs/workbench/contrib/terminal/browser/terminalFindWidget.ts b/src/vs/workbench/contrib/terminal/browser/terminalFindWidget.ts index e4cda779a2b22..df4c11e3dac0f 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalFindWidget.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalFindWidget.ts @@ -7,8 +7,9 @@ import { SimpleFindWidget } from 'vs/workbench/contrib/codeEditor/browser/find/s import { IContextViewService } from 'vs/platform/contextview/browser/contextView'; import { IContextKeyService, IContextKey } from 'vs/platform/contextkey/common/contextkey'; import { FindReplaceState } from 'vs/editor/contrib/find/browser/findState'; -import { ITerminalService } from 'vs/workbench/contrib/terminal/browser/terminal'; +import { ITerminalGroupService, ITerminalService } from 'vs/workbench/contrib/terminal/browser/terminal'; import { TerminalContextKeys } from 'vs/workbench/contrib/terminal/common/terminalContextKey'; +import { TerminalLocation } from 'vs/platform/terminal/common/terminal'; export class TerminalFindWidget extends SimpleFindWidget { protected _findInputFocused: IContextKey; @@ -19,7 +20,8 @@ export class TerminalFindWidget extends SimpleFindWidget { findState: FindReplaceState, @IContextViewService _contextViewService: IContextViewService, @IContextKeyService private readonly _contextKeyService: IContextKeyService, - @ITerminalService private readonly _terminalService: ITerminalService + @ITerminalService private readonly _terminalService: ITerminalService, + @ITerminalGroupService private readonly _terminalGroupService: ITerminalGroupService ) { super(_contextViewService, _contextKeyService, findState, true); this._register(findState.onFindReplaceStateChange(() => { @@ -68,7 +70,16 @@ export class TerminalFindWidget extends SimpleFindWidget { if (instance) { instance.focus(); } - instance?.xterm?.clearSearchDecorations(); + // Terminals in a group currently share a find widget, so hide + // all decorations for terminals in this group + const activeGroup = this._terminalGroupService.activeGroup; + if (instance?.target !== TerminalLocation.Editor && activeGroup) { + for (const terminal of activeGroup.terminalInstances) { + terminal.xterm?.clearSearchDecorations(); + } + } else { + instance?.xterm?.clearSearchDecorations(); + } } protected _onInputChanged() {