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 1553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1564 { | 1564 { |
1565 RefPtr<HitTestingTransformState> transformState; | 1565 RefPtr<HitTestingTransformState> transformState; |
1566 LayoutPoint offset; | 1566 LayoutPoint offset; |
1567 if (containerTransformState) { | 1567 if (containerTransformState) { |
1568 // If we're already computing transform state, then it's relative to the
container (which we know is non-null). | 1568 // If we're already computing transform state, then it's relative to the
container (which we know is non-null). |
1569 transformState = HitTestingTransformState::create(*containerTransformSta
te); | 1569 transformState = HitTestingTransformState::create(*containerTransformSta
te); |
1570 convertToLayerCoords(containerLayer, offset); | 1570 convertToLayerCoords(containerLayer, offset); |
1571 } else { | 1571 } else { |
1572 // If this is the first time we need to make transform state, then base
it off of hitTestLocation, | 1572 // If this is the first time we need to make transform state, then base
it off of hitTestLocation, |
1573 // which is relative to rootLayer. | 1573 // which is relative to rootLayer. |
1574 transformState = HitTestingTransformState::create(hitTestLocation.transf
ormedPoint(), hitTestLocation.transformedRect(), FloatQuad(hitTestRect)); | 1574 transformState = HitTestingTransformState::create(hitTestLocation.transf
ormedPoint(), hitTestLocation.transformedRect(), FloatQuad(FloatRect(hitTestRect
))); |
1575 convertToLayerCoords(rootLayer, offset); | 1575 convertToLayerCoords(rootLayer, offset); |
1576 } | 1576 } |
1577 offset.moveBy(translationOffset); | 1577 offset.moveBy(translationOffset); |
1578 | 1578 |
1579 LayoutObject* containerLayoutObject = containerLayer ? containerLayer->layou
tObject() : 0; | 1579 LayoutObject* containerLayoutObject = containerLayer ? containerLayer->layou
tObject() : 0; |
1580 if (layoutObject()->shouldUseTransformFromContainer(containerLayoutObject))
{ | 1580 if (layoutObject()->shouldUseTransformFromContainer(containerLayoutObject))
{ |
1581 TransformationMatrix containerTransform; | 1581 TransformationMatrix containerTransform; |
1582 layoutObject()->getTransformFromContainer(containerLayoutObject, toLayou
tSize(offset), containerTransform); | 1582 layoutObject()->getTransformFromContainer(containerLayoutObject, toLayou
tSize(offset), containerTransform); |
1583 transformState->applyTransform(containerTransform, HitTestingTransformSt
ate::AccumulateTransform); | 1583 transformState->applyTransform(containerTransform, HitTestingTransformSt
ate::AccumulateTransform); |
1584 } else { | 1584 } else { |
(...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2168 if (isRootLayer()) | 2168 if (isRootLayer()) |
2169 return LayoutRect(m_layoutObject->view()->unscaledDocumentRect()); | 2169 return LayoutRect(m_layoutObject->view()->unscaledDocumentRect()); |
2170 | 2170 |
2171 // The layer created for the LayoutFlowThread is just a helper for painting
and hit-testing, | 2171 // The layer created for the LayoutFlowThread is just a helper for painting
and hit-testing, |
2172 // and should not contribute to the bounding box. The LayoutMultiColumnSets
will contribute | 2172 // and should not contribute to the bounding box. The LayoutMultiColumnSets
will contribute |
2173 // the correct size for the layout content of the multicol container. | 2173 // the correct size for the layout content of the multicol container. |
2174 if (layoutObject()->isLayoutFlowThread()) | 2174 if (layoutObject()->isLayoutFlowThread()) |
2175 return LayoutRect(); | 2175 return LayoutRect(); |
2176 | 2176 |
2177 LayoutRect result = clipper().localClipRect(); | 2177 LayoutRect result = clipper().localClipRect(); |
2178 if (result == LayoutRect::infiniteIntRect()) { | 2178 // TODO(chrishtr): avoid converting to IntRect and back. |
| 2179 if (result == LayoutRect(LayoutRect::infiniteIntRect())) { |
2179 LayoutPoint origin; | 2180 LayoutPoint origin; |
2180 result = physicalBoundingBox(ancestorLayer, &origin); | 2181 result = physicalBoundingBox(ancestorLayer, &origin); |
2181 | 2182 |
2182 const_cast<DeprecatedPaintLayer*>(this)->stackingNode()->updateLayerList
sIfNeeded(); | 2183 const_cast<DeprecatedPaintLayer*>(this)->stackingNode()->updateLayerList
sIfNeeded(); |
2183 | 2184 |
2184 // Reflections are implemented with Layers that hang off of the reflecte
d layer. However, | 2185 // Reflections are implemented with Layers that hang off of the reflecte
d layer. However, |
2185 // the reflection layer subtree does not include the subtree of the pare
nt Layer, so | 2186 // the reflection layer subtree does not include the subtree of the pare
nt Layer, so |
2186 // a recursive computation of stacking children yields no results. This
breaks cases when there are stacking | 2187 // a recursive computation of stacking children yields no results. This
breaks cases when there are stacking |
2187 // children of the parent, that need to be included in reflected composi
ted bounds. | 2188 // children of the parent, that need to be included in reflected composi
ted bounds. |
2188 // Fix this by including composited bounds of stacking children of the r
eflected Layer. | 2189 // Fix this by including composited bounds of stacking children of the r
eflected Layer. |
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2681 | 2682 |
2682 void showLayerTree(const blink::LayoutObject* layoutObject) | 2683 void showLayerTree(const blink::LayoutObject* layoutObject) |
2683 { | 2684 { |
2684 if (!layoutObject) { | 2685 if (!layoutObject) { |
2685 fprintf(stderr, "Cannot showLayerTree. Root is (nil)\n"); | 2686 fprintf(stderr, "Cannot showLayerTree. Root is (nil)\n"); |
2686 return; | 2687 return; |
2687 } | 2688 } |
2688 showLayerTree(layoutObject->enclosingLayer()); | 2689 showLayerTree(layoutObject->enclosingLayer()); |
2689 } | 2690 } |
2690 #endif | 2691 #endif |
OLD | NEW |