static void applyClipRects(const ClipRectsContext& context, RenderObject& renderer, LayoutPoint offset, ClipRects& clipRects) { ASSERT(renderer.hasOverflowClip() || renderer.hasClip()); if (renderer.hasOverflowClip()) { ClipRect newOverflowClip = toRenderBox(renderer).overflowClipRect(offset); newOverflowClip.setHasRadius(renderer.style()->hasBorderRadius()); clipRects.setOverflowClipRect(intersection(newOverflowClip, clipRects.overflowClipRect())); if (renderer.isPositioned()) clipRects.setPosClipRect(intersection(newOverflowClip, clipRects.posClipRect())); } if (renderer.hasClip()) { LayoutRect newClip = toRenderBox(renderer).clipRect(offset); clipRects.setPosClipRect(intersection(newClip, clipRects.posClipRect())); clipRects.setOverflowClipRect(intersection(newClip, clipRects.overflowClipRect())); } }
static void applyClipRects(const ClipRectsContext& context, RenderObject& renderer, LayoutPoint offset, ClipRects& clipRects) { ASSERT(renderer.hasOverflowClip() || renderer.hasClip()); RenderView* view = renderer.view(); ASSERT(view); if (clipRects.fixed() && context.rootLayer->renderer() == view) offset -= view->frameView()->scrollOffsetForFixedPosition(); if (renderer.hasOverflowClip()) { ClipRect newOverflowClip = toRenderBox(renderer).overflowClipRect(offset, context.scrollbarRelevancy); newOverflowClip.setHasRadius(renderer.style()->hasBorderRadius()); clipRects.setOverflowClipRect(intersection(newOverflowClip, clipRects.overflowClipRect())); if (renderer.isPositioned()) clipRects.setPosClipRect(intersection(newOverflowClip, clipRects.posClipRect())); } if (renderer.hasClip()) { LayoutRect newClip = toRenderBox(renderer).clipRect(offset); clipRects.setPosClipRect(intersection(newClip, clipRects.posClipRect())); clipRects.setOverflowClipRect(intersection(newClip, clipRects.overflowClipRect())); clipRects.setFixedClipRect(intersection(newClip, clipRects.fixedClipRect())); } }