summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorInho Lee <inho.lee@qt.io>2022-11-16 09:29:41 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-12-01 06:59:16 +0000
commit7382529fd91a6512b91c1379d3e4c49dbc186ce1 (patch)
treeaa458c9040e21bbc507e7cc45b35cf70d30699a9
parentQDoc-ify QTest::runningTest()'s comment (diff)
downloadqtbase-7382529fd91a6512b91c1379d3e4c49dbc186ce1.tar.xz
qtbase-7382529fd91a6512b91c1379d3e4c49dbc186ce1.zip
Check if fontEngine is valid in QStaticText
When QuickWindow is set as setPersistentGraphics(false) and setPersistentSceneGraph(false), texItems' fontEngines can become invalid with hiding and showing. In this case, a new font engine is created but not used. Fixes: QTBUG-108300 Change-Id: I2bd759724d78cecd62666beb6fb4a01f6063cae1 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit b93720472ea5b14717bfe41304c3aab63faedef3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/gui/painting/qpainter.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index 7e1b31dc8e..9dd3778756 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -5454,6 +5454,8 @@ void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText
if (font() != staticText_d->font || fp == nullptr || stfp == nullptr || fp->dpi != stfp->dpi) {
staticText_d->font = font();
staticText_d->needsRelayout = true;
+ } else if (stfp->engineData == nullptr || stfp->engineData->fontCacheId != QFontCache::instance()->id()) {
+ staticText_d->needsRelayout = true;
}
QFontEngine *fe = staticText_d->font.d->engineForScript(QChar::Script_Common);