summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qpainter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/painting/qpainter.cpp')
-rw-r--r--src/gui/painting/qpainter.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index 317fe4cbf7..ec1b4c1310 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -5744,7 +5744,7 @@ void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText
if (d->extended == 0
|| !d->state->matrix.isAffine()
|| !fe->supportsTransformation(d->state->matrix)) {
- staticText_d->paintText(topLeftPosition, this);
+ staticText_d->paintText(topLeftPosition, this, pen().color());
return;
}
@@ -5816,11 +5816,16 @@ void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText
QPen oldPen = d->state->pen;
QColor currentColor = oldPen.color();
+ static const QColor bodyIndicator(0, 0, 0, 0);
for (int i=0; i<staticText_d->itemCount; ++i) {
QStaticTextItem *item = staticText_d->items + i;
- if (item->color.isValid() && currentColor != item->color) {
- setPen(item->color);
- currentColor = item->color;
+ if (item->color.isValid() && currentColor != item->color
+ && item->color != bodyIndicator) {
+ setPen(item->color);
+ currentColor = item->color;
+ } else if (item->color == bodyIndicator) {
+ setPen(oldPen);
+ currentColor = oldPen.color();
}
d->extended->drawStaticTextItem(item);