From 035beb2718d12cda129420281cd3a3f56ce1763b Mon Sep 17 00:00:00 2001 From: Hannes Braun Date: Wed, 4 Dec 2024 12:30:01 +0100 Subject: [PATCH] Close old visualization tab when a new tab opens --- src/programflow-visualization/frontend/frontend.ts | 5 ++++- .../frontend/visualization_panel.ts | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/programflow-visualization/frontend/frontend.ts b/src/programflow-visualization/frontend/frontend.ts index 3a73b68..08b5003 100644 --- a/src/programflow-visualization/frontend/frontend.ts +++ b/src/programflow-visualization/frontend/frontend.ts @@ -3,6 +3,8 @@ import { VisualizationPanel } from './visualization_panel'; import { MessagePort } from 'worker_threads'; import * as TraceCache from '../trace_cache'; +let panel: VisualizationPanel | undefined = undefined; + export async function startFrontend( context: ExtensionContext, filePath: string, @@ -13,7 +15,8 @@ export async function startFrontend( trace = await TraceCache.getTrace(context, fileHash); } - const panel = await VisualizationPanel.getVisualizationPanel(context, filePath, fileHash, trace, tracePort); + panel?.dispose(); + panel = await VisualizationPanel.getVisualizationPanel(context, filePath, fileHash, trace, tracePort); if (!panel) { return failure("Frontend couldn't be initialized!"); } diff --git a/src/programflow-visualization/frontend/visualization_panel.ts b/src/programflow-visualization/frontend/visualization_panel.ts index ac075ea..170d48d 100644 --- a/src/programflow-visualization/frontend/visualization_panel.ts +++ b/src/programflow-visualization/frontend/visualization_panel.ts @@ -112,6 +112,10 @@ export class VisualizationPanel { }); } + public dispose() { + this._panel?.dispose(); + } + public static async getVisualizationPanel( context: vscode.ExtensionContext, filePath: string,