From 74a879d760ff188575b2216ff634261f0f40ddd4 Mon Sep 17 00:00:00 2001 From: Alex Ross Date: Wed, 11 Dec 2024 11:13:01 +0100 Subject: [PATCH] Should ports status bar entry only show up when ports are or have been used (#235805) Fixes #231402 --- .../contrib/remote/browser/remoteExplorer.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/vs/workbench/contrib/remote/browser/remoteExplorer.ts b/src/vs/workbench/contrib/remote/browser/remoteExplorer.ts index ef741a340d3..480feea12ad 100644 --- a/src/vs/workbench/contrib/remote/browser/remoteExplorer.ts +++ b/src/vs/workbench/contrib/remote/browser/remoteExplorer.ts @@ -44,6 +44,7 @@ export class ForwardedPortsView extends Disposable implements IWorkbenchContribu private readonly contextKeyListener = this._register(new MutableDisposable()); private readonly activityBadge = this._register(new MutableDisposable()); private entryAccessor: IStatusbarEntryAccessor | undefined; + private hasPortsInSession: boolean = false; constructor( @IContextKeyService private readonly contextKeyService: IContextKeyService, @@ -60,6 +61,11 @@ export class ForwardedPortsView extends Disposable implements IWorkbenchContribu })); this.enableBadgeAndStatusBar(); this.enableForwardedPortsFeatures(); + if (!this.environmentService.remoteAuthority) { + this._register(Event.once(this.tunnelService.onTunnelOpened)(() => { + this.hasPortsInSession = true; + })); + } } private async getViewContainer(): Promise { @@ -131,6 +137,11 @@ export class ForwardedPortsView extends Disposable implements IWorkbenchContribu } private updateStatusBar() { + if (!this.environmentService.remoteAuthority && !this.hasPortsInSession) { + // We only want to show the ports status bar entry when the user has taken an action that indicates that they might care about it. + return; + } + if (!this.entryAccessor) { this._register(this.entryAccessor = this.statusbarService.addEntry(this.entry, 'status.forwardedPorts', StatusbarAlignment.LEFT, 40)); } else {