From 201057629708a48ea1753eeb8ec8a935dc4f51ee Mon Sep 17 00:00:00 2001 From: rebornix Date: Mon, 11 Mar 2024 09:09:05 -0700 Subject: [PATCH] Handle dirty state --- .../contrib/customEditor/browser/customEditorInput.ts | 5 +++++ src/vs/workbench/contrib/webview/browser/overlayWebview.ts | 3 +++ 2 files changed, 8 insertions(+) diff --git a/src/vs/workbench/contrib/customEditor/browser/customEditorInput.ts b/src/vs/workbench/contrib/customEditor/browser/customEditorInput.ts index 964a6a0443b..55bb2295d65 100644 --- a/src/vs/workbench/contrib/customEditor/browser/customEditorInput.ts +++ b/src/vs/workbench/contrib/customEditor/browser/customEditorInput.ts @@ -152,6 +152,11 @@ export class CustomEditorInput extends LazilyResolvedWebviewEditorInput { if (this.resource.scheme === Schemas.untitled) { capabilities |= EditorInputCapabilities.Untitled; + capabilities |= EditorInputCapabilities.AuxWindowUnsupported; + } + + if (this.isDirty()) { + capabilities |= EditorInputCapabilities.AuxWindowUnsupported; } return capabilities; diff --git a/src/vs/workbench/contrib/webview/browser/overlayWebview.ts b/src/vs/workbench/contrib/webview/browser/overlayWebview.ts index a5cfe2c7e89..c47093f3967 100644 --- a/src/vs/workbench/contrib/webview/browser/overlayWebview.ts +++ b/src/vs/workbench/contrib/webview/browser/overlayWebview.ts @@ -123,6 +123,9 @@ export class OverlayWebview extends Disposable implements IOverlayWebview { if (this._windowId !== targetWindow.vscodeWindowId) { // moving to a new window this.release(oldOwner); + // since we are moving to a new window, we need to dispose the webview and recreate + this._webview.clear(); + this._webviewEvents.clear(); this._container?.domNode.remove(); this._container = undefined; }