Index: Source/core/rendering/RenderLayerRepainter.cpp |
diff --git a/Source/core/rendering/RenderLayerRepainter.cpp b/Source/core/rendering/RenderLayerRepainter.cpp |
index eca0bbcfa870ad829bb4153c7dfb8114c0595493..61c0edf1638a9c9dabc2bbbec0e787e95d9367ac 100644 |
--- a/Source/core/rendering/RenderLayerRepainter.cpp |
+++ b/Source/core/rendering/RenderLayerRepainter.cpp |
@@ -120,15 +120,17 @@ void RenderLayerRepainter::computeRepaintRects() |
} |
} |
-void RenderLayerRepainter::computeRepaintRectsIncludingDescendants() |
+void RenderLayerRepainter::computeRepaintRectsIncludingNonCompositingDescendants() |
{ |
// FIXME: computeRepaintRects() has to walk up the parent chain for every layer to compute the rects. |
// We should make this more efficient. |
// FIXME: it's wrong to call this when layout is not up-to-date, which we do. |
computeRepaintRects(); |
- for (RenderLayer* layer = m_renderer.layer()->firstChild(); layer; layer = layer->nextSibling()) |
- layer->repainter().computeRepaintRectsIncludingDescendants(); |
+ for (RenderLayer* layer = m_renderer.layer()->firstChild(); layer; layer = layer->nextSibling()) { |
+ if (layer->compositingState() != PaintsIntoOwnBacking && layer->compositingState() != PaintsIntoGroupedBacking) |
+ layer->repainter().computeRepaintRectsIncludingNonCompositingDescendants(); |
+ } |
} |
inline bool RenderLayerRepainter::shouldRepaintLayer() const |