| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. |
| 3 * | 3 * |
| 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. | 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. |
| 5 * | 5 * |
| 6 * Other contributors: | 6 * Other contributors: |
| 7 * Robert O'Callahan <roc+@cs.cmu.edu> | 7 * Robert O'Callahan <roc+@cs.cmu.edu> |
| 8 * David Baron <dbaron@fas.harvard.edu> | 8 * David Baron <dbaron@fas.harvard.edu> |
| 9 * Christian Biesinger <cbiesinger@web.de> | 9 * Christian Biesinger <cbiesinger@web.de> |
| 10 * Randall Jesup <rjesup@wgate.com> | 10 * Randall Jesup <rjesup@wgate.com> |
| (...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 296 isStacking = isStackingContainer(); | 296 isStacking = isStackingContainer(); |
| 297 isNormalFlow = isNormalFlowOnly(); | 297 isNormalFlow = isNormalFlowOnly(); |
| 298 break; | 298 break; |
| 299 case OnlyStackingContextsCanBeStackingContainers: | 299 case OnlyStackingContextsCanBeStackingContainers: |
| 300 isStacking = isStackingContext(); | 300 isStacking = isStackingContext(); |
| 301 isNormalFlow = shouldBeNormalFlowOnlyIgnoringCompositedScrolling(); | 301 isNormalFlow = shouldBeNormalFlowOnlyIgnoringCompositedScrolling(); |
| 302 break; | 302 break; |
| 303 } | 303 } |
| 304 | 304 |
| 305 // Overflow layers are just painted by their enclosing layers, so they don't
get put in zorder lists. | 305 // Overflow layers are just painted by their enclosing layers, so they don't
get put in zorder lists. |
| 306 if (!isNormalFlow && !layer()->isOutOfFlowRenderFlowThread()) { | 306 if (!isNormalFlow) { |
| 307 // Determine which buffer the child should be in. | 307 // Determine which buffer the child should be in. |
| 308 OwnPtr<Vector<RenderLayerStackingNode*> >& buffer = (zIndex() >= 0) ? po
sBuffer : negBuffer; | 308 OwnPtr<Vector<RenderLayerStackingNode*> >& buffer = (zIndex() >= 0) ? po
sBuffer : negBuffer; |
| 309 | 309 |
| 310 // Create the buffer if it doesn't exist yet. | 310 // Create the buffer if it doesn't exist yet. |
| 311 if (!buffer) | 311 if (!buffer) |
| 312 buffer = adoptPtr(new Vector<RenderLayerStackingNode*>); | 312 buffer = adoptPtr(new Vector<RenderLayerStackingNode*>); |
| 313 | 313 |
| 314 // Append ourselves at the end of the appropriate buffer. | 314 // Append ourselves at the end of the appropriate buffer. |
| 315 buffer->append(this); | 315 buffer->append(this); |
| 316 } | 316 } |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 419 || renderer()->isCanvas() | 419 || renderer()->isCanvas() |
| 420 || renderer()->isVideo() | 420 || renderer()->isVideo() |
| 421 || renderer()->isEmbeddedObject() | 421 || renderer()->isEmbeddedObject() |
| 422 || renderer()->isRenderIFrame() | 422 || renderer()->isRenderIFrame() |
| 423 || (renderer()->style()->specifiesColumns() && !layer()->isRootLayer()); | 423 || (renderer()->style()->specifiesColumns() && !layer()->isRootLayer()); |
| 424 const bool preventsElementFromBeingNormalFlow = renderer()->isPositioned() | 424 const bool preventsElementFromBeingNormalFlow = renderer()->isPositioned() |
| 425 || renderer()->hasTransform() | 425 || renderer()->hasTransform() |
| 426 || renderer()->hasClipPath() | 426 || renderer()->hasClipPath() |
| 427 || renderer()->hasFilter() | 427 || renderer()->hasFilter() |
| 428 || renderer()->hasBlendMode() | 428 || renderer()->hasBlendMode() |
| 429 || layer()->isTransparent() | 429 || layer()->isTransparent(); |
| 430 || renderer()->style()->hasFlowFrom(); | |
| 431 | 430 |
| 432 return couldBeNormalFlow && !preventsElementFromBeingNormalFlow; | 431 return couldBeNormalFlow && !preventsElementFromBeingNormalFlow; |
| 433 } | 432 } |
| 434 | 433 |
| 435 void RenderLayerStackingNode::updateIsNormalFlowOnly() | 434 void RenderLayerStackingNode::updateIsNormalFlowOnly() |
| 436 { | 435 { |
| 437 bool isNormalFlowOnly = shouldBeNormalFlowOnly(); | 436 bool isNormalFlowOnly = shouldBeNormalFlowOnly(); |
| 438 if (isNormalFlowOnly == this->isNormalFlowOnly()) | 437 if (isNormalFlowOnly == this->isNormalFlowOnly()) |
| 439 return; | 438 return; |
| 440 | 439 |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 651 return ancestor->stackingNode(); | 650 return ancestor->stackingNode(); |
| 652 return 0; | 651 return 0; |
| 653 } | 652 } |
| 654 | 653 |
| 655 RenderLayerModelObject* RenderLayerStackingNode::renderer() const | 654 RenderLayerModelObject* RenderLayerStackingNode::renderer() const |
| 656 { | 655 { |
| 657 return m_layer->renderer(); | 656 return m_layer->renderer(); |
| 658 } | 657 } |
| 659 | 658 |
| 660 } // namespace WebCore | 659 } // namespace WebCore |
| OLD | NEW |