Fix drawing of tiled images. r=lars
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@19138 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 9c8ec2f..e610bae 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -2,6 +2,16 @@
Reviewed by Lars
+ Fix drawing of tiled images.
+
+ * WebCore.pro:
+ * platform/graphics/qt/ImageQt.cpp:
+ (WebCore::BitmapImage::drawPattern):
+
+2007-01-26 Zack Rusin <zack@kde.org>
+
+ Reviewed by Lars
+
Fixing image loading - we decode QImages
but render QPixmaps now. Implement Icon
class
diff --git a/WebCore/platform/graphics/qt/ImageQt.cpp b/WebCore/platform/graphics/qt/ImageQt.cpp
index c431442..30e6a25 100644
--- a/WebCore/platform/graphics/qt/ImageQt.cpp
+++ b/WebCore/platform/graphics/qt/ImageQt.cpp
@@ -136,21 +136,27 @@
QPixmap pixmap = *framePixmap;
QRect tr = QRectF(tileRect).toRect();
- if (tr.x() || tr.y() || tr.width() != pixmap.width() || tr.height() != pixmap.height())
+ if (tr.x() || tr.y() || tr.width() != pixmap.width() || tr.height() != pixmap.height()) {
pixmap = pixmap.copy(tr);
-
- QBrush b(pixmap);
- b.setMatrix(patternTransform);
-
- ctxt->save();
-
- // Set the compositing operation.
- ctxt->setCompositeOperation(op);
- QPainter* p = ctxt->platformContext();
- p->setBrushOrigin(phase);
- p->fillRect(tileRect, b);
-
- ctxt->restore();
+ }
+
+ if (patternTransform.isIdentity()) {
+ ctxt->save();
+ ctxt->setCompositeOperation(op);
+ QPainter* p = ctxt->platformContext();
+ p->setBrushOrigin(phase);
+ p->drawTiledPixmap(destRect, pixmap);
+ ctxt->restore();
+ } else {
+ QBrush b(pixmap);
+ b.setMatrix(patternTransform);
+ ctxt->save();
+ ctxt->setCompositeOperation(op);
+ QPainter* p = ctxt->platformContext();
+ p->setBrushOrigin(phase);
+ p->fillRect(destRect, b);
+ ctxt->restore();
+ }
}
void BitmapImage::checkForSolidColor()