mirror of
https://github.com/microsoft/vscode.git
synced 2026-08-26 19:36:52 +01:00
Merge pull request #194644 from microsoft/tyriar/192816
Fix term exception during font measurement
This commit is contained in:
@@ -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
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,9 @@ export interface IXtermCore {
|
||||
}
|
||||
},
|
||||
_renderer: {
|
||||
_renderLayers?: any[];
|
||||
value?: {
|
||||
_renderLayers?: any[];
|
||||
}
|
||||
};
|
||||
_handleIntersectionChange: any;
|
||||
};
|
||||
|
||||
@@ -839,10 +839,10 @@ export class XtermTerminal extends Disposable implements IXtermTerminal, IDetach
|
||||
|
||||
private async _measureRenderTime(): Promise<void> {
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user