Respect fixed pitch request when font family is not available
In particular, if you have a <pre> tag in your HTML, this will become a QFont with family "Courier New" and fixedPitch==true. On Android, there's no "Courier New" font, and since the style hint is AnyStyle, we will just return Roboto, which is a proportional font. Note that this exactly matches the condition when fetching the fallback families for the font in the loadEngine() function, which was introduced by 06568ff89c48dee8aab278b8b0538c331aa84595 in Qt 4. [ChangeLog][Text] Respect QFont::fixedPitch() for fallbacks when font family cannot be matched. Task-number: QTBUG-36083 Change-Id: I64787c547dc492b9dd3c49f1edf0d9626d198260 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
This commit is contained in:
parent
0a0cc6afc8
commit
3cf9621fa0
@ -2501,10 +2501,14 @@ QFontDatabase::findFont(int script, const QFontPrivate *fp,
|
|||||||
|
|
||||||
if (!engine) {
|
if (!engine) {
|
||||||
if (!request.family.isEmpty()) {
|
if (!request.family.isEmpty()) {
|
||||||
|
QFont::StyleHint styleHint = QFont::StyleHint(request.styleHint);
|
||||||
|
if (styleHint == QFont::AnyStyle && request.fixedPitch)
|
||||||
|
styleHint = QFont::TypeWriter;
|
||||||
|
|
||||||
QStringList fallbacks = request.fallBackFamilies
|
QStringList fallbacks = request.fallBackFamilies
|
||||||
+ fallbackFamilies(request.family,
|
+ fallbackFamilies(request.family,
|
||||||
QFont::Style(request.style),
|
QFont::Style(request.style),
|
||||||
QFont::StyleHint(request.styleHint),
|
styleHint,
|
||||||
QChar::Script(script));
|
QChar::Script(script));
|
||||||
if (script > QChar::Script_Common)
|
if (script > QChar::Script_Common)
|
||||||
fallbacks += QString(); // Find the first font matching the specified script.
|
fallbacks += QString(); // Find the first font matching the specified script.
|
||||||
|
Loading…
Reference in New Issue
Block a user