From 7952cf7e2705bd310ad8e8d0eca85a372e669fb3 Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Fri, 16 May 2014 13:04:19 +0300 Subject: Ensure we don't re-use webfonts where the "local" font has been requested For webfonts, we can't rely on the fontDef (and hence the cache Key) alone, since the resulting fontcache key might be strictly identical. Instead we have to check if the cached engine doesn't belong to a webfont when we're looking for a "local" font. Change-Id: I2de11c8fdbef53362b66674d3429a042e1835757 Reviewed-by: Pierre Rossi --- src/gui/text/qfontengine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/gui') diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp index 6b05fa254f..a165330913 100644 --- a/src/gui/text/qfontengine.cpp +++ b/src/gui/text/qfontengine.cpp @@ -2085,7 +2085,7 @@ QFontEngine* QFontEngineMultiBasicImpl::createMultiFontEngine(QFontEngine *fe, i while (it != end && it.key() == key) { Q_ASSERT(it.value().data->type() == QFontEngine::Multi); QFontEngineMulti *cachedEngine = static_cast(it.value().data); - if (faceIsLocal || fe == cachedEngine->engine(0)) { + if (fe == cachedEngine->engine(0) || (faceIsLocal && fe->faceId().filename == cachedEngine->engine(0)->faceId().filename)) { engine = cachedEngine; fc->updateHitCountAndTimeStamp(it.value()); break; -- cgit v1.2.3