diff options
Diffstat (limited to 'src/gui/text/qtextengine.cpp')
-rw-r--r-- | src/gui/text/qtextengine.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp index 38fe2f8140..025d4289aa 100644 --- a/src/gui/text/qtextengine.cpp +++ b/src/gui/text/qtextengine.cpp @@ -3060,8 +3060,7 @@ void QTextEngine::drawItemDecorationList(QPainter *painter, const ItemDecoration foreach (const ItemDecoration &decoration, decorationList) { painter->setPen(decoration.pen); - QLineF line(decoration.x1, decoration.y, decoration.x2, decoration.y); - painter->drawLine(line); + painter->drawLine(QLineF(decoration.x1, decoration.y, decoration.x2, decoration.y)); } } @@ -3069,13 +3068,23 @@ void QTextEngine::drawDecorations(QPainter *painter) { QPen oldPen = painter->pen(); + bool wasCompatiblePainting = painter->renderHints() + & QPainter::Qt4CompatiblePainting; + + if (wasCompatiblePainting) + painter->setRenderHint(QPainter::Qt4CompatiblePainting, false); + adjustUnderlines(); drawItemDecorationList(painter, underlineList); drawItemDecorationList(painter, strikeOutList); drawItemDecorationList(painter, overlineList); - painter->setPen(oldPen); clearDecorations(); + + if (wasCompatiblePainting) + painter->setRenderHint(QPainter::Qt4CompatiblePainting); + + painter->setPen(oldPen); } void QTextEngine::clearDecorations() |