From 2d1a1bfb76974219e6a9401e709c2acad501dd15 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sun, 3 Sep 2017 09:05:26 -0700 Subject: [PATCH] Fix inconsistency with lineHeight --- src/renderer/BaseRenderLayer.ts | 4 ++-- src/renderer/Renderer.ts | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/renderer/BaseRenderLayer.ts b/src/renderer/BaseRenderLayer.ts index 53c48b69..462c4eca 100644 --- a/src/renderer/BaseRenderLayer.ts +++ b/src/renderer/BaseRenderLayer.ts @@ -57,7 +57,7 @@ export abstract class BaseRenderLayer implements IRenderLayer { public resize(terminal: ITerminal, canvasWidth: number, canvasHeight: number, charSizeChanged: boolean): void { this.scaledCharWidth = terminal.charMeasure.width * window.devicePixelRatio; this.scaledCharHeight = terminal.charMeasure.height * window.devicePixelRatio; - this.scaledLineHeight = Math.ceil(this.scaledCharHeight * terminal.options.lineHeight); + this.scaledLineHeight = Math.floor(this.scaledCharHeight * terminal.options.lineHeight); this.scaledLineDrawY = terminal.options.lineHeight === 1 ? 0 : Math.round((this.scaledLineHeight - this.scaledCharHeight) / 2); this._canvas.width = canvasWidth * window.devicePixelRatio; this._canvas.height = canvasHeight * window.devicePixelRatio; @@ -143,7 +143,7 @@ export abstract class BaseRenderLayer implements IRenderLayer { } } const isAscii = code < 256; - const isBasicColor = (colorIndex > 0 && fg < 16); + const isBasicColor = (colorIndex > 1 && fg < 16); const isDefaultColor = fg >= 256; if (isAscii && (isBasicColor || isDefaultColor)) { // ImageBitmap's draw about twice as fast as from a canvas diff --git a/src/renderer/Renderer.ts b/src/renderer/Renderer.ts index 58f31ff7..bc0717dc 100644 --- a/src/renderer/Renderer.ts +++ b/src/renderer/Renderer.ts @@ -47,6 +47,9 @@ export class Renderer { } public onResize(cols: number, rows: number): void { + if (!this._terminal.charMeasure.width || !this._terminal.charMeasure.height) { + return; + } const width = this._terminal.charMeasure.width * this._terminal.cols; const height = Math.floor(this._terminal.charMeasure.height * this._terminal.options.lineHeight) * this._terminal.rows; this._renderLayers.forEach(l => l.resize(this._terminal, width, height, false));