summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2011-08-22 14:53:59 +0200
committerSamuel Rødal <samuel.rodal@nokia.com>2011-08-23 14:35:48 +0200
commit889190cfc3c8ec601419236f6419275033770238 (patch)
tree494916213838e9eef77cb1ab5a6fac50110b3b6a /src/gui
parent1bf7fc2f1acbef9d2f6bf9d39958f8f56328fafe (diff)
QFontEngine: Avoid nesting multi-fontengines.
In case the platform plugin returns an instance of QFontEngineMulti (which happens on Windows). Change-Id: I87470e47cfe113557313b7f6b3b09d1455af1c17 Reviewed-on: http://codereview.qt.nokia.com/3319 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/text/qfontdatabase_qpa.cpp2
-rw-r--r--src/gui/text/qfontengine_qpa.cpp2
2 files changed, 3 insertions, 1 deletions
diff --git a/src/gui/text/qfontdatabase_qpa.cpp b/src/gui/text/qfontdatabase_qpa.cpp
index c0392e798b..d8b79840f6 100644
--- a/src/gui/text/qfontdatabase_qpa.cpp
+++ b/src/gui/text/qfontdatabase_qpa.cpp
@@ -156,7 +156,7 @@ QFontEngine *loadEngine(int script, const QFontDef &request,
QFontEngine *engine = loadSingleEngine(script, request, foundry, style, size);
//make sure that the db has all fallback families
- if (engine
+ if (engine && engine->type() != QFontEngine::Multi
&& !(request.styleStrategy & QFont::NoFontMerging) && !engine->symbol ) {
if (family && !family->askedForFallback) {
diff --git a/src/gui/text/qfontengine_qpa.cpp b/src/gui/text/qfontengine_qpa.cpp
index 843e944fd3..6fd85150e3 100644
--- a/src/gui/text/qfontengine_qpa.cpp
+++ b/src/gui/text/qfontengine_qpa.cpp
@@ -666,9 +666,11 @@ QFontEngineMultiQPA::QFontEngineMultiQPA(QFontEngine *fe, int _script, const QSt
: QFontEngineMulti(fallbacks.size() + 1),
fallbackFamilies(fallbacks), script(_script)
{
+ Q_ASSERT(fe && fe->type() != QFontEngine::Multi);
engines[0] = fe;
fe->ref.ref();
fontDef = engines[0]->fontDef;
+ setObjectName(QStringLiteral("QFontEngineMultiQPA"));
}
void QFontEngineMultiQPA::loadEngine(int at)