From b93720472ea5b14717bfe41304c3aab63faedef3 Mon Sep 17 00:00:00 2001 From: Inho Lee Date: Wed, 16 Nov 2022 09:29:41 +0100 Subject: 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 --- src/gui/painting/qpainter.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/gui/painting') 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); -- cgit v1.2.3