From 21e1c5ef584737a5a27d517fbd41a5f1f2df270a Mon Sep 17 00:00:00 2001 From: meganrogge Date: Tue, 22 Mar 2022 01:53:10 -0400 Subject: [PATCH] refresh canvas dimensions on refresh --- src/browser/Decorations/OverviewRulerRenderer.ts | 6 +++--- src/browser/Terminal.ts | 8 ++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/browser/Decorations/OverviewRulerRenderer.ts b/src/browser/Decorations/OverviewRulerRenderer.ts index 9cdf99ca..8c63f5e3 100644 --- a/src/browser/Decorations/OverviewRulerRenderer.ts +++ b/src/browser/Decorations/OverviewRulerRenderer.ts @@ -49,7 +49,7 @@ export class OverviewRulerRenderer extends Disposable { super(); this._canvas = document.createElement('canvas'); this._canvas.classList.add('xterm-decoration-overview-ruler'); - this._refreshCanvasDimensions(); + this.refreshCanvasDimensions(); this._viewportElement.parentElement?.insertBefore(this._canvas, this._viewportElement); const ctx = this._canvas.getContext('2d'); if (!ctx) { @@ -129,7 +129,7 @@ export class OverviewRulerRenderer extends Disposable { ); } - private _refreshCanvasDimensions(): void { + public refreshCanvasDimensions(): void { this._canvas.style.width = `${this._width}px`; this._canvas.style.height = `${this._screenElement.clientHeight}px`; this._canvas.width = Math.round(this._width * window.devicePixelRatio); @@ -139,7 +139,7 @@ export class OverviewRulerRenderer extends Disposable { private _refreshDecorations(updateCanvasDimensions?: boolean, updateAnchor?: boolean): void { if (updateCanvasDimensions) { - this._refreshCanvasDimensions(); + this.refreshCanvasDimensions(); } this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height); for (const decoration of this._decorationService.decorations) { diff --git a/src/browser/Terminal.ts b/src/browser/Terminal.ts index 8cb116ae..6560a976 100644 --- a/src/browser/Terminal.ts +++ b/src/browser/Terminal.ts @@ -175,7 +175,9 @@ export class Terminal extends CoreTerminal implements ITerminal { // Setup InputHandler listeners this.register(this._inputHandler.onRequestBell(() => this.bell())); - this.register(this._inputHandler.onRequestRefreshRows((start, end) => this.refresh(start, end))); + this.register(this._inputHandler.onRequestRefreshRows((start, end) => { + this.refresh(start, end); + })); this.register(this._inputHandler.onRequestSendFocus(() => this._reportFocus())); this.register(this._inputHandler.onRequestReset(() => this.reset())); this.register(this._inputHandler.onRequestWindowsOptionsReport(type => this._reportWindowsOptions(type))); @@ -613,7 +615,8 @@ export class Terminal extends CoreTerminal implements ITerminal { this.optionsService.onOptionChange(() => { if (!this._overviewRulerRenderer && this.options.overviewRulerWidth && this._viewportElement && this.screenElement) { this._overviewRulerRenderer = this._instantiationService.createInstance(OverviewRulerRenderer, this._viewportElement, this.screenElement); - }}); + } + }); // Measure the character size this._charSizeService.measure(); @@ -906,6 +909,7 @@ export class Terminal extends CoreTerminal implements ITerminal { */ public refresh(start: number, end: number): void { this._renderService?.refreshRows(start, end); + this._overviewRulerRenderer?.refreshCanvasDimensions(); } /**