diff --git a/src/vs/workbench/contrib/terminal/browser/terminalConfigHelper.ts b/src/vs/workbench/contrib/terminal/browser/terminalConfigHelper.ts index fd27c75f4f7..552d69c615e 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalConfigHelper.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalConfigHelper.ts @@ -191,15 +191,16 @@ export class TerminalConfigHelper extends Disposable implements IBrowserTerminal } // Get the character dimensions from xterm if it's available - if (xtermCore) { - if (xtermCore._renderService && xtermCore._renderService.dimensions?.css.cell.width && xtermCore._renderService.dimensions?.css.cell.height) { + if (xtermCore?._renderService?._renderer.value) { + const cellDims = xtermCore._renderService.dimensions.css.cell; + if (cellDims?.width && cellDims?.height) { return { fontFamily, fontSize, letterSpacing, lineHeight, - charHeight: xtermCore._renderService.dimensions.css.cell.height / lineHeight, - charWidth: xtermCore._renderService.dimensions.css.cell.width - Math.round(letterSpacing) / window.devicePixelRatio + charHeight: cellDims.height / lineHeight, + charWidth: cellDims.width - Math.round(letterSpacing) / window.devicePixelRatio }; } } diff --git a/src/vs/workbench/contrib/terminal/browser/xterm-private.d.ts b/src/vs/workbench/contrib/terminal/browser/xterm-private.d.ts index 7be81115a66..77592d9e033 100644 --- a/src/vs/workbench/contrib/terminal/browser/xterm-private.d.ts +++ b/src/vs/workbench/contrib/terminal/browser/xterm-private.d.ts @@ -39,7 +39,9 @@ export interface IXtermCore { } }, _renderer: { - _renderLayers?: any[]; + value?: { + _renderLayers?: any[]; + } }; _handleIntersectionChange: any; }; diff --git a/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts b/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts index 8ed7b82393d..fde61f25751 100644 --- a/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts +++ b/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts @@ -839,10 +839,10 @@ export class XtermTerminal extends Disposable implements IXtermTerminal, IDetach private async _measureRenderTime(): Promise { const frameTimes: number[] = []; - if (!this._core._renderService?._renderer._renderLayers) { + if (!this._core._renderService?._renderer.value?._renderLayers) { return; } - const textRenderLayer = this._core._renderService._renderer._renderLayers[0]; + const textRenderLayer = this._core._renderService._renderer.value._renderLayers[0]; const originalOnGridChanged = textRenderLayer?.onGridChanged; const evaluateCanvasRenderer = () => { // Discard first frame time as it's normal to take longer