From cc30177a6927ee9619710efec45dbcd9d9fd4355 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Mon, 24 Oct 2016 10:19:59 +0200 Subject: [PATCH] Fix decorated text in extra-selections Change ddef89b323e8507ea5f451cb53ed151e29a110b3 broke decorations set using setExtraSelections(), because these decorations are drawn with a second drawTextItem() call where numGlyphs is set to 0. When the drawTextDecoration() call was moved into the branches for multi/no-multi font engines, the call for the cut-off when numGlyphs == 0 was unintentionally removed. Task-number: QTBUG-54626 Change-Id: Ieb9fc23099a9d7daf87cc364d3fc9da128ec516d Reviewed-by: Lars Knoll --- src/gui/painting/qpainter.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp index 6472481e7a..74b961f042 100644 --- a/src/gui/painting/qpainter.cpp +++ b/src/gui/painting/qpainter.cpp @@ -6439,7 +6439,8 @@ void QPainterPrivate::drawTextItem(const QPointF &p, const QTextItem &_ti, QText updateState(state); if (!ti.glyphs.numGlyphs) { - // nothing to do + drawTextItemDecoration(q, p, ti.fontEngine, textEngine, ti.underlineStyle, + ti.flags, ti.width.toReal(), ti.charFormat); } else if (ti.fontEngine->type() == QFontEngine::Multi) { QFontEngineMulti *multi = static_cast(ti.fontEngine);