From a5f5a730d6b7907d376abafca08888f3de87a51c Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Tue, 20 Sep 2022 13:49:03 -0700 Subject: [PATCH] Fix hiding of image preview status bar items (#161278) --- extensions/image-preview/src/imagePreview/index.ts | 6 ++++++ extensions/image-preview/src/mediaPreview.ts | 9 ++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) 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;