Trust CoreText-provided vertical metrics on macOS
In f761ad3cd9
we added a cross-platform
consistent approach to vertical spacing of text. However, this has
created problem on macOS, as some of the default fonts on the system
have inconsistent metrics. Specifically, Monaco is missing the
typographical metrics flag in its OS/2 table, and the alternative
metrics in the table are about 30% larger than the typographical
metrics (which match what is used natively). As a result, the fonts
look the same on macOS as on other platforms now, but different from
when the same fonts are used in native apps.
We can't have fonts look wrong on their native platform, so we
revert this change for CoreText, trusting the metrics we get from
the system instead. We keep the consistent approach for the FreeType
engine, as its main use case is cross-platform consistent text
rendering.
[ChangeLog][macOS][Text] Fixed an issue where certain fonts, such as
Monaco, would have a different line spacing than expected.
Pick-to: 6.2
Fixes: QTBUG-97818
Change-Id: I0a3dbe4636d67779935e645066b1e51c1517dc6d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This commit is contained in:
parent
6a42363feb
commit
b00404abff
@ -371,7 +371,7 @@ void QCoreTextFontEngine::initializeHeightMetrics() const
|
||||
m_descent = QFixed::fromReal(CTFontGetDescent(ctfont));
|
||||
m_leading = QFixed::fromReal(CTFontGetLeading(ctfont));
|
||||
|
||||
QFontEngine::initializeHeightMetrics();
|
||||
m_heightMetricsQueried = true;
|
||||
}
|
||||
|
||||
QFixed QCoreTextFontEngine::capHeight() const
|
||||
|
Loading…
Reference in New Issue
Block a user