diff options
Diffstat (limited to 'src/gui/text/qrawfont.cpp')
-rw-r--r-- | src/gui/text/qrawfont.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/gui/text/qrawfont.cpp b/src/gui/text/qrawfont.cpp index 2a53b8869d..19ac4f1dbc 100644 --- a/src/gui/text/qrawfont.cpp +++ b/src/gui/text/qrawfont.cpp @@ -700,6 +700,20 @@ QRawFont QRawFont::fromFont(const QFont &font, QFontDatabase::WritingSystem writ if (fe != 0 && fe->type() == QFontEngine::Multi) { QFontEngineMulti *multiEngine = static_cast<QFontEngineMulti *>(fe); fe = multiEngine->engine(0); + + if (script > QChar::Script_Latin) { + // keep in sync with QFontEngineMulti::loadEngine() + QFontDef request(multiEngine->fontDef); + request.styleStrategy |= QFont::NoFontMerging; + + if (QFontEngine *engine = QFontDatabase::findFont(request, script)) { + if (request.weight > QFont::Normal) + engine->fontDef.weight = request.weight; + if (request.style > QFont::StyleNormal) + engine->fontDef.style = request.style; + fe = engine; + } + } Q_ASSERT(fe); } |