diff options
author | Inho Lee <inho.lee@qt.io> | 2022-11-16 09:29:41 +0100 |
---|---|---|
committer | Inho Lee <inho.lee@qt.io> | 2022-11-26 19:53:14 +0100 |
commit | b93720472ea5b14717bfe41304c3aab63faedef3 (patch) | |
tree | d100cc7edfa0da4ff860884ea515cb690d7bfe47 | |
parent | f32aa06f4f925e9a14db1bf76918358480b98b6a (diff) |
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.
Pick-to: 6.4 6.2
Fixes: QTBUG-108300
Change-Id: I2bd759724d78cecd62666beb6fb4a01f6063cae1
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
-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); |