提交 b4de6e87 编写于 作者: D Daniel Imms

Relayout terminals when they are set to visible

This fixes an issue where background terminals were created while not
visible. This caused the internal charMeasure object to have 0 width and
height so nothing would render.

Fixes #34554
上级 ed9fe0c1
......@@ -511,6 +511,14 @@ export class TerminalInstance implements ITerminalInstance {
// background since scrollTop changes take no effect but the terminal's position does
// change since the number of visible rows decreases.
this._xterm.emit('scroll', this._xterm.buffer.ydisp);
// Force a layout when the instance becomes invisible. This is particularly important
// for ensuring that terminals that are created in the background by an extension will
// correctly get correct character measurements in order to render to the screen (see
// #34554).
const computedStyle = window.getComputedStyle(this._container);
const width = parseInt(computedStyle.getPropertyValue('width').replace('px', ''), 10);
const height = parseInt(computedStyle.getPropertyValue('height').replace('px', ''), 10);
this.layout(new Dimension(width, height));
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册