summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Source/WebCore/ChangeLog14
-rw-r--r--Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp6
2 files changed, 17 insertions, 3 deletions
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 48894850e..776962cc5 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,17 @@
+2013-01-31 Allan Sandfeld Jensen <allan.jensen@digia.com>
+
+ [Qt] Box shadows on a transparency layer is very slow
+ https://bugs.webkit.org/show_bug.cgi?id=107547
+
+ Reviewed by Noam Rosenthal.
+
+ Include the window boundaries in the clip returned by GraphicsContext,
+ since QPainter may remember clips larger than the destination, but
+ ShadowBlur uses the clipBounds to determine the size of the shadow layer.
+
+ * platform/graphics/qt/GraphicsContextQt.cpp:
+ (WebCore::GraphicsContext::clipBounds):
+
2013-01-04 John Mellor <johnme@chromium.org>
Early out from FontCache::releaseFontData if cached font data not found.
diff --git a/Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp b/Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
index 78c682f55..e91c2d287 100644
--- a/Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
+++ b/Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp
@@ -821,10 +821,10 @@ IntRect GraphicsContext::clipBounds() const
QPainter* p = m_data->p();
QRectF clipRect;
+ clipRect = p->transform().inverted().mapRect(p->window());
+
if (p->hasClipping())
- clipRect = m_data->clipBoundingRect();
- else
- clipRect = p->transform().inverted().mapRect(p->window());
+ clipRect = clipRect.intersected(m_data->clipBoundingRect());
return enclosingIntRect(clipRect);
}