Fonts: fix font scoring and Harfbuzz measurements #578
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.
LVFontDef::CalcMatch(): bump weight of typeface match
When checking "font-family: SomeFont, serif" and requesting italic or bold, the serif font could win even if SomeFont is present, if SomeFont has no real italic of bold variant, but the serif font has them.
So, stop iterating the provided names list early when a typeface matches.
Noticed at #572 (comment), see followup posts.
Font: fix measureText() when max_width met with fallback font
When using Harfbuzz, if we would meet max_width (32767px) while measuring text with a fallback font, we would return a too large lastFitChar, and invalid measurements for the chars between the real lastFitChar and the one returned, possibly resulting in chars overlapping previous ones and garbled text rendering.
See koreader/koreader#12183 (comment).
Should allow closing koreader/koreader#12183.
This change is