From 2e81938d1c7bd35e203caacc145a434bad3515b5 Mon Sep 17 00:00:00 2001 From: Alex <apuret@e-biz.fr> Date: Tue, 28 Jul 2020 18:08:13 +0200 Subject: [PATCH] fix: error when panel open twice --- plugins/deadlock-extension/src/view/briefingView.ts | 2 +- plugins/deadlock-extension/src/view/view.ts | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/deadlock-extension/src/view/briefingView.ts b/plugins/deadlock-extension/src/view/briefingView.ts index c5059725..b8ee9e1b 100644 --- a/plugins/deadlock-extension/src/view/briefingView.ts +++ b/plugins/deadlock-extension/src/view/briefingView.ts @@ -32,7 +32,7 @@ export default class BriefingView extends View { render() { if (this.briefingContent) { - return `<h1>Mission Goal 🕶</h1>${marked(this.briefingContent)}`; + return `<h2>Mission Goal 🕶</h2>${marked(this.briefingContent)}`; } else if (this.loaded) { return 'Cannot load Briefing.'; } else { diff --git a/plugins/deadlock-extension/src/view/view.ts b/plugins/deadlock-extension/src/view/view.ts index 520285ca..2f530073 100644 --- a/plugins/deadlock-extension/src/view/view.ts +++ b/plugins/deadlock-extension/src/view/view.ts @@ -1,7 +1,5 @@ import * as path from 'path'; import * as vscode from 'vscode'; -import BriefingView from './briefingView'; -import HelpView from './helpView'; function getNonce() { let text = ''; @@ -21,6 +19,7 @@ export default abstract class View { private _disposables: vscode.Disposable[] = []; protected loaded: boolean; protected initiated: boolean; + private isRegisteredOnWebviewPanelSerializer: boolean; constructor( id: string, @@ -30,6 +29,7 @@ export default abstract class View { ) { this.loaded = false; this.initiated = false; + this.isRegisteredOnWebviewPanelSerializer = false; if (View.views.has(id)) { console.warn(`View has been already created: ${id}`); @@ -80,7 +80,7 @@ export default abstract class View { this._disposables ); - if (vscode.window.registerWebviewPanelSerializer) { + if (vscode.window.registerWebviewPanelSerializer && !this.isRegisteredOnWebviewPanelSerializer) { // Make sure we register a serializer in activation event vscode.window.registerWebviewPanelSerializer(this.panelName, { async deserializeWebviewPanel( @@ -91,6 +91,7 @@ export default abstract class View { // View.revive(webviewPanel, extensionPath); }, }); + this.isRegisteredOnWebviewPanelSerializer = true; } this.load(); -- GitLab