| Index: Source/core/rendering/svg/RenderSVGText.cpp
|
| diff --git a/Source/core/rendering/svg/RenderSVGText.cpp b/Source/core/rendering/svg/RenderSVGText.cpp
|
| index 3503fa1bb8a67154c949d8f934a307c58070a307..2f259d964818867057f01f3d7d0c911623539dd6 100644
|
| --- a/Source/core/rendering/svg/RenderSVGText.cpp
|
| +++ b/Source/core/rendering/svg/RenderSVGText.cpp
|
| @@ -443,12 +443,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);
|
|
|