From 8bd8195e300257e890be6edd4a8318cd74f9e339 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Wed, 19 Oct 2022 10:03:01 -0700 Subject: [PATCH] Disable canvas ImageBitmap optimization on Safari Fixes #4218 --- addons/xterm-addon-canvas/src/BaseRenderLayer.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/addons/xterm-addon-canvas/src/BaseRenderLayer.ts b/addons/xterm-addon-canvas/src/BaseRenderLayer.ts index ccd1f56f..67d459f7 100644 --- a/addons/xterm-addon-canvas/src/BaseRenderLayer.ts +++ b/addons/xterm-addon-canvas/src/BaseRenderLayer.ts @@ -20,6 +20,7 @@ import { Terminal } from 'xterm'; import { IRenderLayer } from './Types'; import { CellColorResolver } from 'browser/renderer/shared/CellColorResolver'; import { Disposable, toDisposable } from 'common/Lifecycle'; +import { isSafari } from 'common/Platform'; export abstract class BaseRenderLayer extends Disposable implements IRenderLayer { private _canvas: HTMLCanvasElement; @@ -434,6 +435,10 @@ class BitmapGenerator { public refresh(): void { // Clear the bitmap immediately as it's stale this._bitmap = undefined; + // Disable ImageBitmaps on Safari because of https://bugs.webkit.org/show_bug.cgi?id=149990 + if (isSafari) { + return; + } if (this._commitTimeout === undefined) { this._commitTimeout = window.setTimeout(() => this._generate(), GLYPH_BITMAP_COMMIT_DELAY); }