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 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 static void applyClipRects(const ClipRectsContext& context, | 70 static void applyClipRects(const ClipRectsContext& context, |
71 const LayoutBoxModelObject& layoutObject, | 71 const LayoutBoxModelObject& layoutObject, |
72 LayoutPoint offset, | 72 LayoutPoint offset, |
73 ClipRects& clipRects) { | 73 ClipRects& clipRects) { |
74 DCHECK(layoutObject.hasClipRelatedProperty() || | 74 DCHECK(layoutObject.hasClipRelatedProperty() || |
75 (layoutObject.isSVGRoot() && | 75 (layoutObject.isSVGRoot() && |
76 toLayoutSVGRoot(&layoutObject)->shouldApplyViewportClip())); | 76 toLayoutSVGRoot(&layoutObject)->shouldApplyViewportClip())); |
77 LayoutView* view = layoutObject.view(); | 77 LayoutView* view = layoutObject.view(); |
78 DCHECK(view); | 78 DCHECK(view); |
79 if (clipRects.fixed() && context.rootLayer->layoutObject() == view) | 79 if (clipRects.fixed() && context.rootLayer->layoutObject() == view) |
80 offset -= toIntSize(view->frameView()->scrollPosition()); | 80 offset -= LayoutSize(view->frameView()->scrollOffset()); |
81 if (layoutObject.hasOverflowClip() || | 81 if (layoutObject.hasOverflowClip() || |
82 (layoutObject.isSVGRoot() && | 82 (layoutObject.isSVGRoot() && |
83 toLayoutSVGRoot(&layoutObject)->shouldApplyViewportClip()) || | 83 toLayoutSVGRoot(&layoutObject)->shouldApplyViewportClip()) || |
84 (layoutObject.styleRef().containsPaint() && layoutObject.isBox())) { | 84 (layoutObject.styleRef().containsPaint() && layoutObject.isBox())) { |
85 ClipRect newOverflowClip = | 85 ClipRect newOverflowClip = |
86 toLayoutBox(layoutObject) | 86 toLayoutBox(layoutObject) |
87 .overflowClipRect(offset, context.overlayScrollbarClipBehavior); | 87 .overflowClipRect(offset, context.overlayScrollbarClipBehavior); |
88 newOverflowClip.setHasRadius(layoutObject.styleRef().hasBorderRadius()); | 88 newOverflowClip.setHasRadius(layoutObject.styleRef().hasBorderRadius()); |
89 clipRects.setOverflowClipRect( | 89 clipRects.setOverflowClipRect( |
90 intersection(newOverflowClip, clipRects.overflowClipRect())); | 90 intersection(newOverflowClip, clipRects.overflowClipRect())); |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
333 m_layer.parent()->clipper().getOrCalculateClipRects(context, | 333 m_layer.parent()->clipper().getOrCalculateClipRects(context, |
334 *parentClipRects); | 334 *parentClipRects); |
335 | 335 |
336 ClipRect result = backgroundClipRectForPosition( | 336 ClipRect result = backgroundClipRectForPosition( |
337 *parentClipRects, m_layer.layoutObject()->styleRef().position()); | 337 *parentClipRects, m_layer.layoutObject()->styleRef().position()); |
338 | 338 |
339 // Note: infinite clipRects should not be scrolled here, otherwise they will a
ccidentally no longer be considered infinite. | 339 // Note: infinite clipRects should not be scrolled here, otherwise they will a
ccidentally no longer be considered infinite. |
340 if (parentClipRects->fixed() && | 340 if (parentClipRects->fixed() && |
341 context.rootLayer->layoutObject() == layoutView && | 341 context.rootLayer->layoutObject() == layoutView && |
342 result != LayoutRect(LayoutRect::infiniteIntRect())) | 342 result != LayoutRect(LayoutRect::infiniteIntRect())) |
343 result.move(toIntSize(layoutView->frameView()->scrollPosition())); | 343 result.move(LayoutSize(layoutView->frameView()->scrollOffset())); |
344 | 344 |
345 return result; | 345 return result; |
346 } | 346 } |
347 | 347 |
348 void PaintLayerClipper::getOrCalculateClipRects(const ClipRectsContext& context, | 348 void PaintLayerClipper::getOrCalculateClipRects(const ClipRectsContext& context, |
349 ClipRects& clipRects) const { | 349 ClipRects& clipRects) const { |
350 if (context.usesCache()) | 350 if (context.usesCache()) |
351 clipRects = getClipRects(context); | 351 clipRects = getClipRects(context); |
352 else | 352 else |
353 calculateClipRects(context, clipRects); | 353 calculateClipRects(context, clipRects); |
(...skipping 19 matching lines...) Expand all Loading... |
373 ShouldRespectOverflowClipType respectOverflowClip, | 373 ShouldRespectOverflowClipType respectOverflowClip, |
374 const LayoutSize& subpixelAccumulation) const { | 374 const LayoutSize& subpixelAccumulation) const { |
375 ClipRectsContext context(rootLayer, PaintingClipRects, | 375 ClipRectsContext context(rootLayer, PaintingClipRects, |
376 IgnoreOverlayScrollbarSize, subpixelAccumulation); | 376 IgnoreOverlayScrollbarSize, subpixelAccumulation); |
377 if (respectOverflowClip == IgnoreOverflowClip) | 377 if (respectOverflowClip == IgnoreOverflowClip) |
378 context.setIgnoreOverflowClip(); | 378 context.setIgnoreOverflowClip(); |
379 return getClipRects(context); | 379 return getClipRects(context); |
380 } | 380 } |
381 | 381 |
382 } // namespace blink | 382 } // namespace blink |
OLD | NEW |