Ambiguous width character incorrectly sized when UseDx enabled in conhost #4604
Labels
Area-Rendering
Text rendering, emoji, complex glyph & font-fallback issues
Issue-Bug
It either shouldn't be doing this or needs an investigation.
Priority-3
A description (P3)
Product-Conhost
For issues in the Console codebase
Resolution-Won't-Fix
We're just really obstinate about this. There's probably a good reason.
Environment
Windows build number: Version 10.0.18362.535
Windows Terminal version (if applicable): n/a
Conhost built from commit 4634a68
Steps to reproduce
printf "12\n\uFFFD\n"
Expected behavior
U+FFFD
is an ambiguous width character, which I thought we were supposed to be interpreting as narrow (see PR #2928). It certainly seems to work that way in Windows Terminal.Actual behavior
In conhost (when UseDx is enabled), ambiguous width characters appear to be dependent on the font, so on my system this character is being rendered over two columns as if it were a wide character.
Looking at PR #2928, I see we made the glyph width fallback method in TermControl.cpp return false for all values. If I do something similar for the
SetGlyphWidthFallback
call in srvinit.cpp, that fixes the problem. Is there a reason why we don't want to do that? Are there backwards compatibility issues?The text was updated successfully, but these errors were encountered: