on blur of terminal chat widget, if terminal is not visible, hide it (#212747)

fix #212672
This commit is contained in:
Megan Rogge 2024-05-14 15:34:17 -07:00 committed by GitHub
parent e3c1bbc90d
commit 4d03498fcd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 11 additions and 0 deletions

View file

@ -639,6 +639,11 @@ export interface ITerminalInstance extends IBaseTerminalInstance {
*/
readonly isDisposed: boolean;
/**
* Whether this terminal is visible.
*/
readonly isVisible: boolean;
/**
* Whether the terminal's pty is hosted on a remote.
*/

View file

@ -266,6 +266,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
get isRemote(): boolean { return this._processManager.remoteAuthority !== undefined; }
get remoteAuthority(): string | undefined { return this._processManager.remoteAuthority; }
get hasFocus(): boolean { return dom.isAncestorOfActiveElement(this._wrapperElement); }
get isVisible(): boolean { return this._isVisible; }
get title(): string { return this._title; }
get titleSource(): TitleEventSource { return this._titleSource; }
get icon(): TerminalIcon | undefined { return this._getIcon(); }

View file

@ -91,6 +91,11 @@ export class TerminalChatWidget extends Disposable {
this._container.appendChild(this._inlineChatWidget.domNode);
this._focusTracker = this._register(trackFocus(this._container));
this._register(this._focusTracker.onDidBlur(() => {
if (!this._instance.isVisible) {
this.hide();
}
}));
this.hide();
}