diff --git a/extensions/image-preview/src/imagePreview/index.ts b/extensions/image-preview/src/imagePreview/index.ts index 37dc18c4c0f..5c0d56933ba 100644 --- a/extensions/image-preview/src/imagePreview/index.ts +++ b/extensions/image-preview/src/imagePreview/index.ts @@ -119,6 +119,12 @@ class ImagePreview extends MediaPreview { this.webviewEditor.webview.postMessage({ type: 'setActive', value: this.webviewEditor.active }); } + public override dispose(): void { + super.dispose(); + this.sizeStatusBarEntry.hide(this); + this.zoomStatusBarEntry.hide(this); + } + public zoomIn() { if (this.previewState === PreviewState.Active) { this.webviewEditor.webview.postMessage({ type: 'zoomIn' }); diff --git a/extensions/image-preview/src/mediaPreview.ts b/extensions/image-preview/src/mediaPreview.ts index 7c56c3fe6ae..424f197cc34 100644 --- a/extensions/image-preview/src/mediaPreview.ts +++ b/extensions/image-preview/src/mediaPreview.ts @@ -48,10 +48,8 @@ export abstract class MediaPreview extends Disposable { })); this._register(webviewEditor.onDidDispose(() => { - if (this.previewState === PreviewState.Active) { - this.binarySizeStatusBarEntry.hide(this); - } this.previewState = PreviewState.Disposed; + this.dispose(); })); const watcher = this._register(vscode.workspace.createFileSystemWatcher(new vscode.RelativePattern(resource, '*'))); @@ -69,6 +67,11 @@ export abstract class MediaPreview extends Disposable { })); } + public override dispose() { + super.dispose(); + this.binarySizeStatusBarEntry.hide(this); + } + protected updateBinarySize() { vscode.workspace.fs.stat(this.resource).then(({ size }) => { this._binarySize = size;