Chromium Code Reviews| 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 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 261 } else { | 261 } else { |
| 262 parentLayer->clipper().calculateClipRects(context, clipRects); | 262 parentLayer->clipper().calculateClipRects(context, clipRects); |
| 263 } | 263 } |
| 264 } else { | 264 } else { |
| 265 clipRects.reset(LayoutRect(LayoutRect::infiniteIntRect())); | 265 clipRects.reset(LayoutRect(LayoutRect::infiniteIntRect())); |
| 266 } | 266 } |
| 267 | 267 |
| 268 adjustClipRectsForChildren(m_layoutObject, clipRects); | 268 adjustClipRectsForChildren(m_layoutObject, clipRects); |
| 269 | 269 |
| 270 if ((m_layoutObject.hasOverflowClip() && shouldRespectOverflowClip(context)) || m_layoutObject.hasClip()) { | 270 if ((m_layoutObject.hasOverflowClip() && shouldRespectOverflowClip(context)) || m_layoutObject.hasClip()) { |
| 271 const PaintLayer* layer = m_layoutObject.layer(); | |
| 272 const PaintLayer* layerToStopAt = context.rootLayer; | |
| 273 if (const PaintLayer* paginationLayer = layer->enclosingPaginationLayer( )) { | |
| 274 // Stop at the multicol container, unless the root layer is also ins ide it. | |
| 275 if (layerToStopAt->enclosingPaginationLayer() != paginationLayer) | |
| 276 layerToStopAt = paginationLayer; | |
|
chrishtr
2015/12/14 21:39:51
Why not just require users of PaintLayerClipper to
| |
| 277 } | |
| 271 // This offset cannot use convertToLayerCoords, because sometimes our ro otLayer may be across | 278 // This offset cannot use convertToLayerCoords, because sometimes our ro otLayer may be across |
| 272 // some transformed layer boundary, for example, in the PaintLayerCompos itor overlapMap, where | 279 // some transformed layer boundary, for example, in the PaintLayerCompos itor overlapMap, where |
| 273 // clipRects are needed in view space. | 280 // clipRects are needed in view space. |
| 274 applyClipRects(context, m_layoutObject, roundedLayoutPoint(m_layoutObjec t.localToContainerPoint(FloatPoint(), context.rootLayer->layoutObject())), clipR ects); | 281 applyClipRects(context, m_layoutObject, roundedLayoutPoint(m_layoutObjec t.localToContainerPoint(FloatPoint(), layerToStopAt->layoutObject())), clipRects ); |
| 275 } | 282 } |
| 276 } | 283 } |
| 277 | 284 |
| 278 static ClipRect backgroundClipRectForPosition(const ClipRects& parentRects, EPos ition position) | 285 static ClipRect backgroundClipRectForPosition(const ClipRects& parentRects, EPos ition position) |
| 279 { | 286 { |
| 280 if (position == FixedPosition) | 287 if (position == FixedPosition) |
| 281 return parentRects.fixedClipRect(); | 288 return parentRects.fixedClipRect(); |
| 282 | 289 |
| 283 if (position == AbsolutePosition) | 290 if (position == AbsolutePosition) |
| 284 return parentRects.posClipRect(); | 291 return parentRects.posClipRect(); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 331 | 338 |
| 332 ClipRects* PaintLayerClipper::paintingClipRects(const PaintLayer* rootLayer, Sho uldRespectOverflowClip respectOverflowClip, const LayoutSize& subpixelAccumulati on) const | 339 ClipRects* PaintLayerClipper::paintingClipRects(const PaintLayer* rootLayer, Sho uldRespectOverflowClip respectOverflowClip, const LayoutSize& subpixelAccumulati on) const |
| 333 { | 340 { |
| 334 ClipRectsContext context(rootLayer, PaintingClipRects, IgnoreOverlayScrollba rSize, subpixelAccumulation); | 341 ClipRectsContext context(rootLayer, PaintingClipRects, IgnoreOverlayScrollba rSize, subpixelAccumulation); |
| 335 if (respectOverflowClip == IgnoreOverflowClip) | 342 if (respectOverflowClip == IgnoreOverflowClip) |
| 336 context.setIgnoreOverflowClip(); | 343 context.setIgnoreOverflowClip(); |
| 337 return getClipRects(context); | 344 return getClipRects(context); |
| 338 } | 345 } |
| 339 | 346 |
| 340 } // namespace blink | 347 } // namespace blink |
| OLD | NEW |