summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/RenderSVGResourceClipper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/rendering/RenderSVGResourceClipper.cpp')
-rw-r--r--WebCore/rendering/RenderSVGResourceClipper.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/WebCore/rendering/RenderSVGResourceClipper.cpp b/WebCore/rendering/RenderSVGResourceClipper.cpp
index a201d1f..626a880 100644
--- a/WebCore/rendering/RenderSVGResourceClipper.cpp
+++ b/WebCore/rendering/RenderSVGResourceClipper.cpp
@@ -64,7 +64,7 @@ RenderSVGResourceClipper::~RenderSVGResourceClipper()
m_clipper.clear();
}
-void RenderSVGResourceClipper::invalidateClients()
+void RenderSVGResourceClipper::removeAllClientsFromCache(bool markForInvalidation)
{
if (m_invalidationBlocked)
return;
@@ -75,20 +75,19 @@ void RenderSVGResourceClipper::invalidateClients()
m_clipper.clear();
}
- markAllClientsForInvalidation(LayoutAndBoundariesInvalidation);
+ markAllClientsForInvalidation(markForInvalidation ? LayoutAndBoundariesInvalidation : ParentOnlyInvalidation);
}
-void RenderSVGResourceClipper::invalidateClient(RenderObject* client)
+void RenderSVGResourceClipper::removeClientFromCache(RenderObject* client, bool markForInvalidation)
{
ASSERT(client);
if (m_invalidationBlocked)
return;
- ASSERT(client->selfNeedsLayout());
if (m_clipper.contains(client))
delete m_clipper.take(client);
- markClientForInvalidation(client, BoundariesInvalidation);
+ markClientForInvalidation(client, markForInvalidation ? BoundariesInvalidation : ParentOnlyInvalidation);
}
bool RenderSVGResourceClipper::applyResource(RenderObject* object, RenderStyle*, GraphicsContext*& context, unsigned short resourceMode)
@@ -174,7 +173,7 @@ bool RenderSVGResourceClipper::applyClippingToContext(RenderObject* object, cons
if (!clipperData->clipMaskImage)
return false;
- context->clipToImageBuffer(repaintRect, clipperData->clipMaskImage.get());
+ context->clipToImageBuffer(clipperData->clipMaskImage.get(), repaintRect);
return true;
}