| Index: Source/core/rendering/svg/RenderSVGText.cpp
|
| diff --git a/Source/core/rendering/svg/RenderSVGText.cpp b/Source/core/rendering/svg/RenderSVGText.cpp
|
| index e9f50f71c5358dc6b5a7bfbd165b5cfd33da9eff..8bfd5020576b7f94d5c4321da0803049481d4bb2 100644
|
| --- a/Source/core/rendering/svg/RenderSVGText.cpp
|
| +++ b/Source/core/rendering/svg/RenderSVGText.cpp
|
| @@ -442,12 +442,15 @@ bool RenderSVGText::nodeAtFloatPoint(const HitTestRequest& request, HitTestResul
|
| PointerEventsHitRules hitRules(PointerEventsHitRules::SVG_TEXT_HITTESTING, request, style()->pointerEvents());
|
| bool isVisible = (style()->visibility() == VISIBLE);
|
| if (isVisible || !hitRules.requireVisible) {
|
| - if ((hitRules.canHitStroke && (style()->svgStyle()->hasStroke() || !hitRules.requireStroke))
|
| + if ((hitRules.canHitBoundingBox && !objectBoundingBox().isEmpty())
|
| + || (hitRules.canHitStroke && (style()->svgStyle()->hasStroke() || !hitRules.requireStroke))
|
| || (hitRules.canHitFill && (style()->svgStyle()->hasFill() || !hitRules.requireFill))) {
|
| FloatPoint localPoint = localToParentTransform().inverse().mapPoint(pointInParent);
|
|
|
| if (!SVGRenderSupport::pointInClippingArea(this, localPoint))
|
| return false;
|
| + if (hitRules.canHitBoundingBox && !objectBoundingBox().contains(localPoint))
|
| + return false;
|
|
|
| HitTestLocation hitTestLocation(LayoutPoint(flooredIntPoint(localPoint)));
|
| return RenderBlock::nodeAtPoint(request, result, hitTestLocation, LayoutPoint(), hitTestAction);
|
|
|