diff options
author | Inho Lee <inho.lee@qt.io> | 2022-11-16 09:29:41 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-12-01 06:59:16 +0000 |
commit | 7382529fd91a6512b91c1379d3e4c49dbc186ce1 (patch) | |
tree | aa458c9040e21bbc507e7cc45b35cf70d30699a9 | |
parent | QDoc-ify QTest::runningTest()'s comment (diff) | |
download | qtbase-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.cpp | 2 |
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); |