-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Display density changes lead to corrupted characters #2137
Comments
Might be rel;ated to ligature problems in #2135? |
Might be, but I don't think so. Looks like some chars might be cached in the renderer atlas with a smaller resolution? |
@Eugeny seems to me like the cached parts are |
Good point - these are the ones that are incorrectly rendered in #2135 |
Weirdly enough, switching to a higher density makes these characters larger, and switching to a smaller density display makes them smaller. |
The APIs that https://github.com/xtermjs/xterm-addon-ligatures use probably just need some updating for the recent updates to renderers. |
@jerch @Tyriar |
I've seen this happen a bunch, we're probably just missing a case in https://github.com/xtermjs/xterm.js/blob/master/src/browser/ScreenDprMonitor.ts, or something is not listening to the monitor. |
@Tyriar in case this helps, it can be reliably reproduced with the demo page, but only for unicode characters. ASCII will get occasionally corrupted, but not always. Changing font size to something else and back immediately fixes it. |
@Eugeny Could you test if this can be repro'ed for ASCII as well, if the fg color is set to RGB? I suspect that |
@jerch I've just pushed a PR with the fix. The listener wasn't being called at all. |
When switching between a built-in Retina display and an external normal-density display, some characters will be drawn with incorrect size by the canvas renderer.
Now, I can't confirm whether it's possibly Electron's fault, but I suspect that Chrome would behave the same.
xterm 3.13.2
The text was updated successfully, but these errors were encountered: