OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2009, Google Inc. All rights reserved. | 2 * Copyright (c) 2009, Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 return renderer->isSVGShape() || renderer->isSVGText() || renderer->isSVGIma
ge() || renderer->node()->hasTagName(SVGNames::useTag); | 159 return renderer->isSVGShape() || renderer->isSVGText() || renderer->isSVGIma
ge() || renderer->node()->hasTagName(SVGNames::useTag); |
160 } | 160 } |
161 | 161 |
162 bool RenderSVGModelObject::checkIntersection(RenderObject* renderer, const Float
Rect& rect) | 162 bool RenderSVGModelObject::checkIntersection(RenderObject* renderer, const Float
Rect& rect) |
163 { | 163 { |
164 if (!renderer || renderer->style()->pointerEvents() == PE_NONE) | 164 if (!renderer || renderer->style()->pointerEvents() == PE_NONE) |
165 return false; | 165 return false; |
166 if (!isGraphicsElement(renderer)) | 166 if (!isGraphicsElement(renderer)) |
167 return false; | 167 return false; |
168 AffineTransform ctm; | 168 AffineTransform ctm; |
169 getElementCTM(static_cast<SVGElement*>(renderer->node()), ctm); | 169 SVGElement* svgElement = static_cast<SVGElement*>(renderer->node()); |
170 return intersectsAllowingEmpty(rect, ctm.mapRect(renderer->repaintRectInLoca
lCoordinates())); | 170 getElementCTM(svgElement, ctm); |
| 171 ASSERT(svgElement->renderer()); |
| 172 return intersectsAllowingEmpty(rect, ctm.mapRect(svgElement->renderer()->rep
aintRectInLocalCoordinates())); |
171 } | 173 } |
172 | 174 |
173 bool RenderSVGModelObject::checkEnclosure(RenderObject* renderer, const FloatRec
t& rect) | 175 bool RenderSVGModelObject::checkEnclosure(RenderObject* renderer, const FloatRec
t& rect) |
174 { | 176 { |
175 if (!renderer || renderer->style()->pointerEvents() == PE_NONE) | 177 if (!renderer || renderer->style()->pointerEvents() == PE_NONE) |
176 return false; | 178 return false; |
177 if (!isGraphicsElement(renderer)) | 179 if (!isGraphicsElement(renderer)) |
178 return false; | 180 return false; |
179 AffineTransform ctm; | 181 AffineTransform ctm; |
180 getElementCTM(static_cast<SVGElement*>(renderer->node()), ctm); | 182 SVGElement* svgElement = static_cast<SVGElement*>(renderer->node()); |
181 return rect.contains(ctm.mapRect(renderer->repaintRectInLocalCoordinates()))
; | 183 getElementCTM(svgElement, ctm); |
| 184 ASSERT(svgElement->renderer()); |
| 185 return rect.contains(ctm.mapRect(svgElement->renderer()->repaintRectInLocalC
oordinates())); |
182 } | 186 } |
183 | 187 |
184 } // namespace WebCore | 188 } // namespace WebCore |
185 | 189 |
186 #endif // ENABLE(SVG) | 190 #endif // ENABLE(SVG) |
OLD | NEW |