| 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 683 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 694 child->updateLayerPositionsAfterScroll(geometryMap, flags); | 694 child->updateLayerPositionsAfterScroll(geometryMap, flags); |
| 695 | 695 |
| 696 // We don't update our reflection as scrolling is a translation which does n
ot change the size() | 696 // We don't update our reflection as scrolling is a translation which does n
ot change the size() |
| 697 // of an object, thus RenderReplica will still repaint itself properly as th
e layer position was | 697 // of an object, thus RenderReplica will still repaint itself properly as th
e layer position was |
| 698 // updated above. | 698 // updated above. |
| 699 | 699 |
| 700 if (geometryMap) | 700 if (geometryMap) |
| 701 geometryMap->popMappingsToAncestor(parent()); | 701 geometryMap->popMappingsToAncestor(parent()); |
| 702 } | 702 } |
| 703 | 703 |
| 704 void RenderLayer::positionNewlyCreatedOverflowControls() | |
| 705 { | |
| 706 if (!compositedLayerMapping()->hasUnpositionedOverflowControlsLayers()) | |
| 707 return; | |
| 708 | |
| 709 RenderGeometryMap geometryMap(UseTransforms); | |
| 710 RenderView* view = renderer()->view(); | |
| 711 if (this != view->layer() && parent()) | |
| 712 geometryMap.pushMappingsToAncestor(parent(), 0); | |
| 713 | |
| 714 LayoutPoint offsetFromRoot = LayoutPoint(geometryMap.absolutePoint(FloatPoin
t())); | |
| 715 positionOverflowControls(toIntSize(roundedIntPoint(offsetFromRoot))); | |
| 716 } | |
| 717 | |
| 718 bool RenderLayer::hasBlendMode() const | 704 bool RenderLayer::hasBlendMode() const |
| 719 { | 705 { |
| 720 return RuntimeEnabledFeatures::cssCompositingEnabled() && renderer()->hasBle
ndMode(); | 706 return RuntimeEnabledFeatures::cssCompositingEnabled() && renderer()->hasBle
ndMode(); |
| 721 } | 707 } |
| 722 | 708 |
| 723 void RenderLayer::updateBlendMode() | 709 void RenderLayer::updateBlendMode() |
| 724 { | 710 { |
| 725 if (!RuntimeEnabledFeatures::cssCompositingEnabled()) | 711 if (!RuntimeEnabledFeatures::cssCompositingEnabled()) |
| 726 return; | 712 return; |
| 727 | 713 |
| (...skipping 1375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2103 updateIsNormalFlowOnly(); | 2089 updateIsNormalFlowOnly(); |
| 2104 updateSelfPaintingLayer(); | 2090 updateSelfPaintingLayer(); |
| 2105 | 2091 |
| 2106 if (isStackingContainer()) | 2092 if (isStackingContainer()) |
| 2107 dirtyZOrderLists(); | 2093 dirtyZOrderLists(); |
| 2108 else | 2094 else |
| 2109 clearZOrderLists(); | 2095 clearZOrderLists(); |
| 2110 | 2096 |
| 2111 dirtyStackingContainerZOrderLists(); | 2097 dirtyStackingContainerZOrderLists(); |
| 2112 | 2098 |
| 2113 compositor()->setShouldReevaluateCompositingAfterLayout(); | 2099 compositor()->setNeedsToRecomputeCompositingRequirements(); |
| 2114 compositor()->setCompositingLayersNeedRebuild(); | 2100 compositor()->setCompositingLayersNeedRebuild(); |
| 2115 } | 2101 } |
| 2116 | 2102 |
| 2117 static inline int adjustedScrollDelta(int beginningDelta) { | 2103 static inline int adjustedScrollDelta(int beginningDelta) { |
| 2118 // This implemention matches Firefox's. | 2104 // This implemention matches Firefox's. |
| 2119 // http://mxr.mozilla.org/firefox/source/toolkit/content/widgets/browser.xml
#856. | 2105 // http://mxr.mozilla.org/firefox/source/toolkit/content/widgets/browser.xml
#856. |
| 2120 const int speedReducer = 12; | 2106 const int speedReducer = 12; |
| 2121 | 2107 |
| 2122 int adjustedDelta = beginningDelta / speedReducer; | 2108 int adjustedDelta = beginningDelta / speedReducer; |
| 2123 if (adjustedDelta > 1) | 2109 if (adjustedDelta > 1) |
| (...skipping 2378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4502 if (m_negZOrderList) | 4488 if (m_negZOrderList) |
| 4503 m_negZOrderList->clear(); | 4489 m_negZOrderList->clear(); |
| 4504 m_zOrderListsDirty = true; | 4490 m_zOrderListsDirty = true; |
| 4505 | 4491 |
| 4506 m_descendantsAreContiguousInStackingOrderDirty = true; | 4492 m_descendantsAreContiguousInStackingOrderDirty = true; |
| 4507 | 4493 |
| 4508 if (!renderer()->documentBeingDestroyed()) { | 4494 if (!renderer()->documentBeingDestroyed()) { |
| 4509 compositor()->setNeedsUpdateCompositingRequirementsState(); | 4495 compositor()->setNeedsUpdateCompositingRequirementsState(); |
| 4510 compositor()->setCompositingLayersNeedRebuild(); | 4496 compositor()->setCompositingLayersNeedRebuild(); |
| 4511 if (acceleratedCompositingForOverflowScrollEnabled()) | 4497 if (acceleratedCompositingForOverflowScrollEnabled()) |
| 4512 compositor()->setShouldReevaluateCompositingAfterLayout(); | 4498 compositor()->setNeedsToRecomputeCompositingRequirements(); |
| 4513 } | 4499 } |
| 4514 } | 4500 } |
| 4515 | 4501 |
| 4516 void RenderLayer::dirtyStackingContainerZOrderLists() | 4502 void RenderLayer::dirtyStackingContainerZOrderLists() |
| 4517 { | 4503 { |
| 4518 // Any siblings in the ancestor stacking context could also be affected. | 4504 // Any siblings in the ancestor stacking context could also be affected. |
| 4519 // Changing z-index, for example, could cause us to stack in between a | 4505 // Changing z-index, for example, could cause us to stack in between a |
| 4520 // sibling's descendants, meaning that we have to recompute | 4506 // sibling's descendants, meaning that we have to recompute |
| 4521 // m_descendantsAreContiguousInStackingOrder for that sibling. | 4507 // m_descendantsAreContiguousInStackingOrder for that sibling. |
| 4522 dirtySiblingStackingContextCanBePromotedToStackingContainer(); | 4508 dirtySiblingStackingContextCanBePromotedToStackingContainer(); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 4539 { | 4525 { |
| 4540 ASSERT(m_layerListMutationAllowed); | 4526 ASSERT(m_layerListMutationAllowed); |
| 4541 | 4527 |
| 4542 if (m_normalFlowList) | 4528 if (m_normalFlowList) |
| 4543 m_normalFlowList->clear(); | 4529 m_normalFlowList->clear(); |
| 4544 m_normalFlowListDirty = true; | 4530 m_normalFlowListDirty = true; |
| 4545 | 4531 |
| 4546 if (!renderer()->documentBeingDestroyed()) { | 4532 if (!renderer()->documentBeingDestroyed()) { |
| 4547 compositor()->setCompositingLayersNeedRebuild(); | 4533 compositor()->setCompositingLayersNeedRebuild(); |
| 4548 if (acceleratedCompositingForOverflowScrollEnabled()) | 4534 if (acceleratedCompositingForOverflowScrollEnabled()) |
| 4549 compositor()->setShouldReevaluateCompositingAfterLayout(); | 4535 compositor()->setNeedsToRecomputeCompositingRequirements(); |
| 4550 } | 4536 } |
| 4551 } | 4537 } |
| 4552 | 4538 |
| 4553 void RenderLayer::rebuildZOrderLists() | 4539 void RenderLayer::rebuildZOrderLists() |
| 4554 { | 4540 { |
| 4555 ASSERT(m_layerListMutationAllowed); | 4541 ASSERT(m_layerListMutationAllowed); |
| 4556 ASSERT(isDirtyStackingContainer()); | 4542 ASSERT(isDirtyStackingContainer()); |
| 4557 rebuildZOrderLists(m_posZOrderList, m_negZOrderList); | 4543 rebuildZOrderLists(m_posZOrderList, m_negZOrderList); |
| 4558 m_zOrderListsDirty = false; | 4544 m_zOrderListsDirty = false; |
| 4559 } | 4545 } |
| (...skipping 704 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5264 } | 5250 } |
| 5265 | 5251 |
| 5266 IntRect RenderLayer::scrollCornerAndResizerRect() const | 5252 IntRect RenderLayer::scrollCornerAndResizerRect() const |
| 5267 { | 5253 { |
| 5268 if (!m_scrollableArea) | 5254 if (!m_scrollableArea) |
| 5269 return IntRect(); | 5255 return IntRect(); |
| 5270 | 5256 |
| 5271 return m_scrollableArea->scrollCornerAndResizerRect(); | 5257 return m_scrollableArea->scrollCornerAndResizerRect(); |
| 5272 } | 5258 } |
| 5273 | 5259 |
| 5260 void RenderLayer::positionOverflowControls() |
| 5261 { |
| 5262 RenderGeometryMap geometryMap(UseTransforms); |
| 5263 RenderView* view = renderer()->view(); |
| 5264 if (this != view->layer() && parent()) |
| 5265 geometryMap.pushMappingsToAncestor(parent(), 0); |
| 5266 |
| 5267 LayoutPoint offsetFromRoot = LayoutPoint(geometryMap.absolutePoint(FloatPoin
t())); |
| 5268 positionOverflowControls(toIntSize(roundedIntPoint(offsetFromRoot))); |
| 5269 } |
| 5270 |
| 5274 void RenderLayer::positionOverflowControls(const IntSize& offsetFromRoot) | 5271 void RenderLayer::positionOverflowControls(const IntSize& offsetFromRoot) |
| 5275 { | 5272 { |
| 5276 if (m_scrollableArea) | 5273 if (m_scrollableArea) |
| 5277 m_scrollableArea->positionOverflowControls(offsetFromRoot); | 5274 m_scrollableArea->positionOverflowControls(offsetFromRoot); |
| 5278 } | 5275 } |
| 5279 | 5276 |
| 5280 void RenderLayer::paintScrollCorner(GraphicsContext* context, const IntPoint& pa
intOffset, const IntRect& damageRect) | 5277 void RenderLayer::paintScrollCorner(GraphicsContext* context, const IntPoint& pa
intOffset, const IntRect& damageRect) |
| 5281 { | 5278 { |
| 5282 if (m_scrollableArea) | 5279 if (m_scrollableArea) |
| 5283 m_scrollableArea->paintScrollCorner(context, paintOffset, damageRect); | 5280 m_scrollableArea->paintScrollCorner(context, paintOffset, damageRect); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5325 } | 5322 } |
| 5326 } | 5323 } |
| 5327 | 5324 |
| 5328 void showLayerTree(const WebCore::RenderObject* renderer) | 5325 void showLayerTree(const WebCore::RenderObject* renderer) |
| 5329 { | 5326 { |
| 5330 if (!renderer) | 5327 if (!renderer) |
| 5331 return; | 5328 return; |
| 5332 showLayerTree(renderer->enclosingLayer()); | 5329 showLayerTree(renderer->enclosingLayer()); |
| 5333 } | 5330 } |
| 5334 #endif | 5331 #endif |
| OLD | NEW |