void RenderLayerStackingNode::updateIsNormalFlowOnly() { bool isNormalFlowOnly = shouldBeNormalFlowOnly(); if (isNormalFlowOnly == this->isNormalFlowOnly()) return; m_isNormalFlowOnly = isNormalFlowOnly; if (RenderLayer* p = layer()->parent()) p->stackingNode()->dirtyNormalFlowList(); dirtyStackingContextZOrderLists(); }
void RenderLayerStackingNode::updateStackingNodesAfterStyleChange(const RenderStyle* oldStyle) { bool wasStackingContext = oldStyle ? !oldStyle->hasAutoZIndex() : false; int oldZIndex = oldStyle ? oldStyle->zIndex() : 0; bool isStackingContext = this->isStackingContext(); if (isStackingContext == wasStackingContext && oldZIndex == zIndex()) return; dirtyStackingContextZOrderLists(); if (isStackingContext) dirtyZOrderLists(); else clearZOrderLists(); }
void PaintLayerStackingNode::styleDidChange(const ComputedStyle* oldStyle) { bool wasStackingContext = oldStyle ? oldStyle->isStackingContext() : false; int oldZIndex = oldStyle ? oldStyle->zIndex() : 0; bool isStackingContext = this->isStackingContext(); bool shouldBeStacked = layoutObject()->styleRef().isStacked(); if (isStackingContext == wasStackingContext && m_isStacked == shouldBeStacked && oldZIndex == zIndex()) return; dirtyStackingContextZOrderLists(); if (isStackingContext) dirtyZOrderLists(); else clearZOrderLists(); if (m_isStacked != shouldBeStacked) { m_isStacked = shouldBeStacked; if (!layoutObject()->documentBeingDestroyed() && !layer()->isRootLayer()) compositor()->setNeedsCompositingUpdate(CompositingUpdateRebuildTree); } }