summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/painting/qpaintengineex.cpp2
-rw-r--r--tests/auto/gui/painting/qpainter/tst_qpainter.cpp24
2 files changed, 25 insertions, 1 deletions
diff --git a/src/gui/painting/qpaintengineex.cpp b/src/gui/painting/qpaintengineex.cpp
index 5c39a5fca2..3f194334b2 100644
--- a/src/gui/painting/qpaintengineex.cpp
+++ b/src/gui/painting/qpaintengineex.cpp
@@ -1072,7 +1072,7 @@ void QPaintEngineEx::drawStaticTextItem(QStaticTextItem *staticTextItem)
changedHints = true;
}
- fill(qtVectorPathForPath(path), s->pen.color());
+ fill(qtVectorPathForPath(path), s->pen.brush());
if (changedHints) {
s->renderHints = oldHints;
diff --git a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
index 4faecad104..8451ce0696 100644
--- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
+++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
@@ -256,6 +256,8 @@ private slots:
void drawTextOutsideGuiThread();
+ void drawTextWithComplexBrush();
+
private:
void fillData();
void setPenColor(QPainter& p);
@@ -4305,6 +4307,28 @@ void tst_QPainter::drawTextOutsideGuiThread()
QCOMPARE(referenceRendering, t.rendering);
}
+void tst_QPainter::drawTextWithComplexBrush()
+{
+ QImage texture(10, 10, QImage::Format_ARGB32_Premultiplied);
+ texture.fill(Qt::red);
+
+ QImage image(100, 100, QImage::Format_ARGB32_Premultiplied);
+ image.fill(Qt::white);
+ QPainter p(&image);
+ QFont f = p.font();
+ f.setPixelSize(70);
+ p.setFont(f);
+
+ QBrush brush(Qt::white);
+ brush.setTextureImage(texture);
+ p.setPen(QPen(brush, 2));
+
+ p.drawText(10, 10, "Hello World");
+
+ int paintedPixels = getPaintedPixels(image, Qt::white);
+ QVERIFY(paintedPixels > 0);
+}
+
QTEST_MAIN(tst_QPainter)
#include "tst_qpainter.moc"