Index: Source/core/rendering/svg/RenderSVGModelObject.cpp |
diff --git a/Source/core/rendering/svg/RenderSVGModelObject.cpp b/Source/core/rendering/svg/RenderSVGModelObject.cpp |
index 294dfda3eb7b48e452eeb4fa8d5f2ee7d7c20b82..4a04b5f289fead675a816d0dfd7614f05a4dc021 100644 |
--- a/Source/core/rendering/svg/RenderSVGModelObject.cpp |
+++ b/Source/core/rendering/svg/RenderSVGModelObject.cpp |
@@ -128,51 +128,6 @@ bool RenderSVGModelObject::nodeAtPoint(const HitTestRequest&, HitTestResult&, co |
return false; |
} |
-static void getElementCTM(SVGGraphicsElement* element, AffineTransform& transform) |
-{ |
- ASSERT(element); |
- element->document().updateLayoutIgnorePendingStylesheets(); |
- |
- SVGElement* stopAtElement = element->nearestViewportElement(); |
- ASSERT(stopAtElement); |
- |
- AffineTransform localTransform; |
- Node* current = element; |
- |
- while (current && current->isSVGElement()) { |
- SVGElement* currentElement = toSVGElement(current); |
- localTransform = currentElement->renderer()->localToParentTransform(); |
- transform = localTransform.multiply(transform); |
- // For getCTM() computation, stop at the nearest viewport element |
- if (currentElement == stopAtElement) |
- break; |
- |
- current = current->parentOrShadowHostNode(); |
- } |
-} |
- |
-// FloatRect::intersects does not consider horizontal or vertical lines (because of isEmpty()). |
-// So special-case handling of such lines. |
-static bool intersectsAllowingEmpty(const FloatRect& r, const FloatRect& other) |
-{ |
- if (r.isEmpty() && other.isEmpty()) |
- return false; |
- if (r.isEmpty() && !other.isEmpty()) { |
- return (other.contains(r.x(), r.y()) && !other.contains(r.maxX(), r.maxY())) |
- || (!other.contains(r.x(), r.y()) && other.contains(r.maxX(), r.maxY())); |
- } |
- if (other.isEmpty() && !r.isEmpty()) |
- return intersectsAllowingEmpty(other, r); |
- return r.intersects(other); |
-} |
- |
-// One of the element types that can cause graphics to be drawn onto the target canvas. Specifically: circle, ellipse, |
-// image, line, path, polygon, polyline, rect, text and use. |
-static bool isGraphicsElement(RenderObject* renderer) |
-{ |
- return renderer->isSVGShape() || renderer->isSVGText() || renderer->isSVGImage() || renderer->node()->hasTagName(SVGNames::useTag); |
-} |
- |
// The SVG addFocusRingRects() method adds rects in local coordinates so the default absoluteFocusRingQuads |
// returns incorrect values for SVG objects. Overriding this method provides access to the absolute bounds. |
void RenderSVGModelObject::absoluteFocusRingQuads(Vector<FloatQuad>& quads) |
@@ -180,30 +135,4 @@ void RenderSVGModelObject::absoluteFocusRingQuads(Vector<FloatQuad>& quads) |
quads.append(localToAbsoluteQuad(FloatQuad(repaintRectInLocalCoordinates()))); |
} |
-bool RenderSVGModelObject::checkIntersection(RenderObject* renderer, const FloatRect& rect) |
-{ |
- if (!renderer || renderer->style()->pointerEvents() == PE_NONE) |
- return false; |
- if (!isGraphicsElement(renderer)) |
- return false; |
- AffineTransform ctm; |
- SVGGraphicsElement* svgElement = toSVGGraphicsElement(renderer->node()); |
- getElementCTM(svgElement, ctm); |
- ASSERT(svgElement->renderer()); |
- return intersectsAllowingEmpty(rect, ctm.mapRect(svgElement->renderer()->repaintRectInLocalCoordinates())); |
-} |
- |
-bool RenderSVGModelObject::checkEnclosure(RenderObject* renderer, const FloatRect& rect) |
-{ |
- if (!renderer || renderer->style()->pointerEvents() == PE_NONE) |
- return false; |
- if (!isGraphicsElement(renderer)) |
- return false; |
- AffineTransform ctm; |
- SVGGraphicsElement* svgElement = toSVGGraphicsElement(renderer->node()); |
- getElementCTM(svgElement, ctm); |
- ASSERT(svgElement->renderer()); |
- return rect.contains(ctm.mapRect(svgElement->renderer()->repaintRectInLocalCoordinates())); |
-} |
- |
} // namespace WebCore |