2010-12-14  Andreas Kling  <andreas.kling@nokia.com>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Avoid GraphicsContext save/restore in Image::drawPattern()
        https://bugs.webkit.org/show_bug.cgi?id=51037

        It's enough to restore the CompositeOperator after drawing.

        * platform/graphics/qt/ImageQt.cpp:
        (WebCore::Image::drawPattern):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74035 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/platform/graphics/qt/ImageQt.cpp b/WebCore/platform/graphics/qt/ImageQt.cpp
index 3611308..f713d37 100644
--- a/WebCore/platform/graphics/qt/ImageQt.cpp
+++ b/WebCore/platform/graphics/qt/ImageQt.cpp
@@ -114,7 +114,7 @@
     if (tr.x() || tr.y() || tr.width() != pixmap.width() || tr.height() != pixmap.height())
         pixmap = pixmap.copy(tr);
 
-    ctxt->save();
+    CompositeOperator previousOperator = ctxt->compositeOperation();
 
     ctxt->setCompositeOperation(op);
     QPainter* p = ctxt->platformContext();
@@ -130,7 +130,7 @@
     b.setTransform(transform);
     p->fillRect(dr, b);
 
-    ctxt->restore();
+    ctxt->setCompositeOperation(previousOperator);
 
     if (imageObserver())
         imageObserver()->didDraw(this);