Index: sky/engine/core/rendering/RenderLayerModelObject.cpp |
diff --git a/sky/engine/core/rendering/RenderLayerModelObject.cpp b/sky/engine/core/rendering/RenderLayerModelObject.cpp |
index 3540286b1d2c76f87f08bcc10f080b2664023b6d..27943e538445d610a9a004f2e34cc5e7f23753e5 100644 |
--- a/sky/engine/core/rendering/RenderLayerModelObject.cpp |
+++ b/sky/engine/core/rendering/RenderLayerModelObject.cpp |
@@ -62,6 +62,21 @@ bool RenderLayerModelObject::hasSelfPaintingLayer() const |
return m_layer && m_layer->isSelfPaintingLayer(); |
} |
+void RenderLayerModelObject::collectSelfPaintingLayers(Vector<RenderBox*>& layers) |
+{ |
+ for (RenderObject* child = slowFirstChild(); child; child = child->nextSibling()) { |
+ if (child->isBox()) { |
+ RenderBox* childBox = toRenderBox(child); |
+ if (childBox->hasSelfPaintingLayer()) |
+ layers.append(childBox); |
+ else |
+ childBox->collectSelfPaintingLayers(layers); |
+ } else if (child->isLayerModelObject()) { |
+ toRenderLayerModelObject(child)->collectSelfPaintingLayers(layers); |
+ } |
+ } |
+} |
+ |
void RenderLayerModelObject::willBeDestroyed() |
{ |
RenderObject::willBeDestroyed(); |