| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved. | 2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2013 Intel Corporation. All rights reserved. | 3 * Copyright (C) 2013 Intel Corporation. All rights reserved. |
| 4 * | 4 * |
| 5 * Portions are Copyright (C) 1998 Netscape Communications Corporation. | 5 * Portions are Copyright (C) 1998 Netscape Communications Corporation. |
| 6 * | 6 * |
| 7 * Other contributors: | 7 * Other contributors: |
| 8 * Robert O'Callahan <roc+@cs.cmu.edu> | 8 * Robert O'Callahan <roc+@cs.cmu.edu> |
| 9 * David Baron <dbaron@fas.harvard.edu> | 9 * David Baron <dbaron@fas.harvard.edu> |
| 10 * Christian Biesinger <cbiesinger@web.de> | 10 * Christian Biesinger <cbiesinger@web.de> |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 const DeprecatedPaintLayerReflectionInfo* reflectionInfo() const { return m_
reflectionInfo.get(); } | 145 const DeprecatedPaintLayerReflectionInfo* reflectionInfo() const { return m_
reflectionInfo.get(); } |
| 146 | 146 |
| 147 const DeprecatedPaintLayer* root() const | 147 const DeprecatedPaintLayer* root() const |
| 148 { | 148 { |
| 149 const DeprecatedPaintLayer* curr = this; | 149 const DeprecatedPaintLayer* curr = this; |
| 150 while (curr->parent()) | 150 while (curr->parent()) |
| 151 curr = curr->parent(); | 151 curr = curr->parent(); |
| 152 return curr; | 152 return curr; |
| 153 } | 153 } |
| 154 | 154 |
| 155 const LayoutPoint& location() const { ASSERT(!m_needsPositionUpdate); return
m_location; } | 155 enum LocationQueryBehavior { |
| 156 IncludeScroll, |
| 157 ExcludeScroll |
| 158 }; |
| 159 LayoutPoint location(LocationQueryBehavior behavior = IncludeScroll) const {
ASSERT(!m_needsPositionUpdate); return behavior == IncludeScroll ? m_location :
locationExcludingOverflowScroll(); } |
| 160 // Note: This function is only needed during the transition period to SPv2. |
| 161 // Once we have eliminated layer-based hit testing and clipping, |
| 162 // we can cache the unscrolled location instead. |
| 163 LayoutPoint locationExcludingOverflowScroll() const; |
| 156 // FIXME: size() should ASSERT(!m_needsPositionUpdate) as well, but that fai
ls in some tests, | 164 // FIXME: size() should ASSERT(!m_needsPositionUpdate) as well, but that fai
ls in some tests, |
| 157 // for example, fast/repaint/clipped-relative.html. | 165 // for example, fast/repaint/clipped-relative.html. |
| 158 const IntSize& size() const { return m_size; } | 166 const IntSize& size() const { return m_size; } |
| 159 void setSizeHackForLayoutTreeAsText(const IntSize& size) { m_size = size; } | 167 void setSizeHackForLayoutTreeAsText(const IntSize& size) { m_size = size; } |
| 160 | 168 |
| 161 LayoutRect rect() const { return LayoutRect(location(), LayoutSize(size()));
} | 169 LayoutRect rect() const { return LayoutRect(location(), LayoutSize(size()));
} |
| 162 | 170 |
| 163 bool isRootLayer() const { return m_isRootLayer; } | 171 bool isRootLayer() const { return m_isRootLayer; } |
| 164 | 172 |
| 165 DeprecatedPaintLayerCompositor* compositor() const; | 173 DeprecatedPaintLayerCompositor* compositor() const; |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 DeprecatedPaintLayer* enclosingLayerForPaintInvalidationCrossingFrameBoundar
ies() const; | 238 DeprecatedPaintLayer* enclosingLayerForPaintInvalidationCrossingFrameBoundar
ies() const; |
| 231 | 239 |
| 232 bool hasAncestorWithFilterOutsets() const; | 240 bool hasAncestorWithFilterOutsets() const; |
| 233 | 241 |
| 234 bool canUseConvertToLayerCoords() const | 242 bool canUseConvertToLayerCoords() const |
| 235 { | 243 { |
| 236 // These LayoutObjects have an impact on their layers without the layout
Objects knowing about it. | 244 // These LayoutObjects have an impact on their layers without the layout
Objects knowing about it. |
| 237 return !layoutObject()->hasTransformRelatedProperty() && !layoutObject()
->isSVGRoot(); | 245 return !layoutObject()->hasTransformRelatedProperty() && !layoutObject()
->isSVGRoot(); |
| 238 } | 246 } |
| 239 | 247 |
| 240 void convertToLayerCoords(const DeprecatedPaintLayer* ancestorLayer, LayoutP
oint&) const; | 248 void convertToLayerCoords(const DeprecatedPaintLayer* ancestorLayer, LayoutP
oint&, LocationQueryBehavior = IncludeScroll) const; |
| 241 void convertToLayerCoords(const DeprecatedPaintLayer* ancestorLayer, LayoutR
ect&) const; | 249 void convertToLayerCoords(const DeprecatedPaintLayer* ancestorLayer, LayoutR
ect&) const; |
| 242 | 250 |
| 243 // Does the same as convertToLayerCoords() when not in multicol. For multico
l, however, | 251 // Does the same as convertToLayerCoords() when not in multicol. For multico
l, however, |
| 244 // convertToLayerCoords() calculates the offset in flow-thread coordinates (
what the layout | 252 // convertToLayerCoords() calculates the offset in flow-thread coordinates (
what the layout |
| 245 // engine uses internally), while this method calculates the visual coordina
tes; i.e. it figures | 253 // engine uses internally), while this method calculates the visual coordina
tes; i.e. it figures |
| 246 // out which column the layer starts in and adds in the offset. See | 254 // out which column the layer starts in and adds in the offset. See |
| 247 // http://www.chromium.org/developers/design-documents/multi-column-layout f
or more info. | 255 // http://www.chromium.org/developers/design-documents/multi-column-layout f
or more info. |
| 248 LayoutPoint visualOffsetFromAncestor(const DeprecatedPaintLayer* ancestorLay
er) const; | 256 LayoutPoint visualOffsetFromAncestor(const DeprecatedPaintLayer* ancestorLay
er) const; |
| 249 | 257 |
| 250 // The hitTest() method looks for mouse events by walking layers that inters
ect the point from front to back. | 258 // The hitTest() method looks for mouse events by walking layers that inters
ect the point from front to back. |
| (...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 750 | 758 |
| 751 } // namespace blink | 759 } // namespace blink |
| 752 | 760 |
| 753 #ifndef NDEBUG | 761 #ifndef NDEBUG |
| 754 // Outside the WebCore namespace for ease of invocation from gdb. | 762 // Outside the WebCore namespace for ease of invocation from gdb. |
| 755 void showLayerTree(const blink::DeprecatedPaintLayer*); | 763 void showLayerTree(const blink::DeprecatedPaintLayer*); |
| 756 void showLayerTree(const blink::LayoutObject*); | 764 void showLayerTree(const blink::LayoutObject*); |
| 757 #endif | 765 #endif |
| 758 | 766 |
| 759 #endif // Layer_h | 767 #endif // Layer_h |
| OLD | NEW |