Implement text run “wideness” analysis, and HWID / FWID application #3496
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary of the Pull Request
References
PR Checklist
Tests added/passedThere are no tests forCustomTextLayout
yet.Detailed Description of the Pull Request / Additional comments
In a comment to #2066 I said that:
What it does it we added an extra analysis pass for text “wideness” analysis to further break text runs into "narrow" and "wide". After that, when we perform shaping, we apply
hwid
feature for narrow runs andfwid
for wide to let the font we are using know what is the desired wideness the Terminal want. If a font support that (like Iosevka), it would transform the glyphs to the ones with proper width so the text won't get scaled.Validation Steps Performed
Install font Iosevka, and print the character
①
.It should be shown in a narrow oval, instead of a scaled-down circle.