From d67e73a4da718fe4fcc4b495734b441c7a9974f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Mangeonjean?= Date: Thu, 18 Dec 2025 12:16:32 +0100 Subject: [PATCH] fix(fit-addon): call getComputedStyle on the right window element --- addons/addon-fit/src/FitAddon.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/addons/addon-fit/src/FitAddon.ts b/addons/addon-fit/src/FitAddon.ts index a282ed3f..2cc84857 100644 --- a/addons/addon-fit/src/FitAddon.ts +++ b/addons/addon-fit/src/FitAddon.ts @@ -23,6 +23,17 @@ interface ITerminalDimensions { const MINIMUM_COLS = 2; const MINIMUM_ROWS = 1; +function getWindow(e: Node): Window { + if (e?.ownerDocument?.defaultView) { + return e.ownerDocument.defaultView.window; + } + + return window; +} +function getComputedStyle(el: HTMLElement): CSSStyleDeclaration { + return getWindow(el).getComputedStyle(el, null); +} + export class FitAddon implements ITerminalAddon , IFitApi { private _terminal: Terminal | undefined; @@ -69,10 +80,10 @@ export class FitAddon implements ITerminalAddon , IFitApi { ? 0 : (this._terminal.options.overviewRuler?.width || ViewportConstants.DEFAULT_SCROLL_BAR_WIDTH)); - const parentElementStyle = window.getComputedStyle(this._terminal.element.parentElement); + const parentElementStyle = getComputedStyle(this._terminal.element.parentElement); const parentElementHeight = parseInt(parentElementStyle.getPropertyValue('height')); const parentElementWidth = Math.max(0, parseInt(parentElementStyle.getPropertyValue('width'))); - const elementStyle = window.getComputedStyle(this._terminal.element); + const elementStyle = getComputedStyle(this._terminal.element); const elementPadding = { top: parseInt(elementStyle.getPropertyValue('padding-top')), bottom: parseInt(elementStyle.getPropertyValue('padding-bottom')),