FloatRect RenderSVGRoot::repaintRectInLocalCoordinates() const { // FIXME: This does not include the border but it should! FloatRect repaintRect = computeContainerBoundingBox(this, true); style()->svgStyle()->inflateForShadow(repaintRect); return repaintRect; }
// RenderSVGContainer is used for <g> elements which do not themselves have a // width or height, so we union all of our child rects as our repaint rect. FloatRect RenderSVGContainer::repaintRectInLocalCoordinates() const { FloatRect repaintRect = computeContainerBoundingBox(this, true); // A filter on this container can paint outside of the union of the child repaint rects repaintRect.unite(filterBoundingBoxForRenderer(this)); return repaintRect; }
// RenderSVGContainer is used for <g> elements which do not themselves have a // width or height, so we union all of our child rects as our repaint rect. FloatRect RenderSVGContainer::repaintRectInLocalCoordinates() const { FloatRect repaintRect = computeContainerBoundingBox(this, true); FloatRect rect = filterBoundingBoxForRenderer(this); if (!rect.isEmpty()) repaintRect = rect; rect = clipperBoundingBoxForRenderer(this); if (!rect.isEmpty()) repaintRect.intersect(rect); rect = maskerBoundingBoxForRenderer(this); if (!rect.isEmpty()) repaintRect.intersect(rect); style()->svgStyle()->inflateForShadow(repaintRect); return repaintRect; }
FloatRect RenderSVGRoot::objectBoundingBox() const { return computeContainerBoundingBox(this, false); }
FloatRect RenderSVGContainer::strokeBoundingBox() const { return computeContainerBoundingBox(this, true); }