-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Open
Labels
area/addon/canvasarea/addon/ligaturesarea/addon/webglhelp wantedtype/bugSomething is misbehavingSomething is misbehaving
Description
some fonts provide extremely long ligatures, e.g. Fira Code for ===================================================
The char atlas code tries to find a row to fit it but fails and gets stuck in an infinite loop
xterm.js/src/browser/renderer/shared/TextureAtlas.ts
Lines 792 to 799 in fe89817
// If there is not enough room in the current row, finish it and try again | |
if (activeRow === activePage.currentRow) { | |
activeRow.x = 0; | |
activeRow.y += activeRow.height; | |
activeRow.height = 0; | |
} else { | |
activePage.fixedRows.splice(activePage.fixedRows.indexOf(activeRow), 1); | |
} |
^Here we're checking if there's room on the current row and creating a new one if not.
Details
- Browser and browser version: chrome 108
- OS version: macOS 12
- xterm.js version: 5.1.0 (also on latest master branch)
Steps to reproduce
- Install Fira Code font, Run the xterm demo and enable ligatures
- start typing
=
- Keep looking at the char atlas drawn below, once the glyph is almost the same width as char atlas, typing the next
=
will freeze everything.
Metadata
Metadata
Assignees
Labels
area/addon/canvasarea/addon/ligaturesarea/addon/webglhelp wantedtype/bugSomething is misbehavingSomething is misbehaving