diff options
author | Samuel Rødal <sroedal@trolltech.com> | 2009-10-05 13:36:38 (GMT) |
---|---|---|
committer | Samuel Rødal <sroedal@trolltech.com> | 2009-10-05 14:38:13 (GMT) |
commit | 1210fa5b2d65895ad2be1f9ca7cae586e3b29dc1 (patch) | |
tree | 9353ed33b671287aab9f5edee2b791b7ef870190 /tests | |
parent | d763b9a56c5f488a6a4187f6aa454405ab75d09b (diff) | |
download | Qt-1210fa5b2d65895ad2be1f9ca7cae586e3b29dc1.zip Qt-1210fa5b2d65895ad2be1f9ca7cae586e3b29dc1.tar.gz Qt-1210fa5b2d65895ad2be1f9ca7cae586e3b29dc1.tar.bz2 |
Fixed bug in X11 paint engine causing source pixmap depth to change.
Setting a pixmap brush when painting to a 32-bit target might cause the
source pixmap to be converted to 32-bit. We should detach the pixmap if
we need to convert it.
Reviewed-by: Trond
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qpixmap/tst_qpixmap.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp index 2568b94..36c1518 100644 --- a/tests/auto/qpixmap/tst_qpixmap.cpp +++ b/tests/auto/qpixmap/tst_qpixmap.cpp @@ -166,6 +166,8 @@ private slots: void fromImage_crash(); void fromData(); + + void preserveDepth(); }; static bool lenientCompare(const QPixmap &actual, const QPixmap &expected) @@ -1448,6 +1450,23 @@ void tst_QPixmap::task_246446() QVERIFY(pm.mask().isNull()); } +void tst_QPixmap::preserveDepth() +{ + QPixmap target(64, 64); + target.fill(Qt::transparent); + + QPixmap source(64, 64); + source.fill(Qt::white); + + int depth = source.depth(); + + QPainter painter(&target); + painter.setBrush(source); + painter.drawRect(target.rect()); + painter.end(); + + QCOMPARE(depth, source.depth()); +} QTEST_MAIN(tst_QPixmap) #include "tst_qpixmap.moc" |