2008-05-07 Adam Treat <treat@kde.org>
authorhausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 7 May 2008 12:28:42 +0000 (12:28 +0000)
committerhausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 7 May 2008 12:28:42 +0000 (12:28 +0000)
        Reviewed by Simon.

        https://bugs.webkit.org/show_bug.cgi?id=18898

        Fixed wrong transform being used for creating the pixmap for a new
        transparency layer. This fixes the popup menus on dell.com.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@32955 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/platform/graphics/qt/GraphicsContextQt.cpp

index 8fa6388..b99aeb6 100644 (file)
@@ -1,3 +1,15 @@
+2008-05-07  Adam Treat  <treat@kde.org>
+
+        Reviewed by Simon.
+
+        https://bugs.webkit.org/show_bug.cgi?id=18898
+
+        Fixed wrong transform being used for creating the pixmap for a new
+        transparency layer. This fixes the popup menus on dell.com.
+
+        * platform/graphics/qt/GraphicsContextQt.cpp:
+        (WebCore::GraphicsContext::beginTransparencyLayer):
+
 2008-05-07  Ariya Hidayat  <ariya.hidayat@trolltech.com>
 
         Reviewed by Simon.
index 6db4c72..b046e0e 100644 (file)
@@ -658,15 +658,12 @@ void GraphicsContext::beginTransparencyLayer(float opacity)
     h = device->height();
 
     QRectF clip = p->clipPath().boundingRect();
-    bool ok;
-    QTransform transform = p->transform().inverted(&ok);
-    if (ok) {
-        QRectF deviceClip = transform.mapRect(clip);
-        x = int(qBound(qreal(0), deviceClip.x(), (qreal)w));
-        y = int(qBound(qreal(0), deviceClip.y(), (qreal)h));
-        w = int(qBound(qreal(0), deviceClip.width(), (qreal)w) + 2);
-        h = int(qBound(qreal(0), deviceClip.height(), (qreal)h) + 2);
-    }
+    QRectF deviceClip = p->transform().mapRect(clip);
+    x = int(qBound(qreal(0), deviceClip.x(), (qreal)w));
+    y = int(qBound(qreal(0), deviceClip.y(), (qreal)h));
+    w = int(qBound(qreal(0), deviceClip.width(), (qreal)w) + 2);
+    h = int(qBound(qreal(0), deviceClip.height(), (qreal)h) + 2);
+
     TransparencyLayer * layer = new TransparencyLayer(m_data->p(), QRect(x, y, w, h));
 
     layer->opacity = opacity;