diff options
| -rw-r--r-- | Source/WebCore/ChangeLog | 14 | ||||
| -rw-r--r-- | Source/WebCore/platform/graphics/qt/GraphicsContextQt.cpp | 6 |
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); } |
