Changeset 237122 in webkit
- Timestamp:
- Oct 15, 2018 10:25:45 AM (6 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r237121 r237122 1 2018-10-15 Simon Fraser <simon.fraser@apple.com> 2 3 Make a helper function to check for reflection layers 4 https://bugs.webkit.org/show_bug.cgi?id=190584 5 6 Reviewed by Zalan Bujtas. 7 8 Add RenderLayer::isReflectionLayer() which returns true if the passed layer 9 is the layer of this layer's reflection. It's used in z-order list building. 10 11 * rendering/RenderLayer.cpp: 12 (WebCore::RenderLayer::updateNormalFlowList): 13 (WebCore::RenderLayer::rebuildZOrderLists): 14 (WebCore::RenderLayer::collectLayers): 15 (WebCore::expandClipRectForDescendantsAndReflection): 16 (WebCore::RenderLayer::calculateClipRects const): 17 * rendering/RenderLayer.h: 18 1 19 2018-10-15 Simon Fraser <simon.fraser@apple.com> 2 20 -
trunk/Source/WebCore/rendering/RenderLayer.cpp
r237121 r237122 644 644 for (RenderLayer* child = firstChild(); child; child = child->nextSibling()) { 645 645 // Ignore non-overflow layers and reflections. 646 if (child->isNormalFlowOnly() && (!m_reflection || reflectionLayer() !=child)) {646 if (child->isNormalFlowOnly() && !isReflectionLayer(*child)) { 647 647 if (!m_normalFlowList) 648 648 m_normalFlowList = std::make_unique<Vector<RenderLayer*>>(); … … 666 666 bool includeHiddenLayers = compositor().inCompositingMode(); 667 667 for (RenderLayer* child = firstChild(); child; child = child->nextSibling()) { 668 if (! m_reflection || reflectionLayer() != child)668 if (!isReflectionLayer(*child)) 669 669 child->collectLayers(includeHiddenLayers, posZOrderList, negZOrderList); 670 670 } … … 701 701 for (RenderLayer* child = firstChild(); child; child = child->nextSibling()) { 702 702 // Ignore reflections. 703 if (! m_reflection || reflectionLayer() != child)703 if (!isReflectionLayer(*child)) 704 704 child->collectLayers(includeHiddenLayers, positiveZOrderList, negativeZOrderList); 705 705 } … … 1851 1851 // a stacking container. This means we can just walk the layer tree directly. 1852 1852 for (RenderLayer* curr = layer.firstChild(); curr; curr = curr->nextSibling()) { 1853 if (!layer. reflection() || layer.reflectionLayer() != curr)1853 if (!layer.isReflectionLayer(*curr)) 1854 1854 clipRect.unite(transparencyClipBox(*curr, rootLayer, transparencyBehavior, DescendantsOfTransparencyClipBox, paintBehavior)); 1855 1855 } … … 6423 6423 } 6424 6424 6425 bool RenderLayer::isReflectionLayer(const RenderLayer& layer) const 6426 { 6427 return m_reflection ? &layer == m_reflection->layer() : false; 6428 } 6429 6425 6430 void RenderLayer::createReflection() 6426 6431 { -
trunk/Source/WebCore/rendering/RenderLayer.h
r237121 r237122 266 266 RenderReplica* reflection() const { return m_reflection.get(); } 267 267 RenderLayer* reflectionLayer() const; 268 bool isReflectionLayer(const RenderLayer&) const; 268 269 269 270 const LayoutPoint& location() const { return m_topLeft; }
Note: See TracChangeset
for help on using the changeset viewer.