OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006 Apple Computer, Inc. | 2 * Copyright (C) 2006 Apple Computer, Inc. |
3 * Copyright (C) 2006 Alexander Kellett <lypanov@kde.org> | 3 * Copyright (C) 2006 Alexander Kellett <lypanov@kde.org> |
4 * Copyright (C) 2006 Oliver Hunt <ojh16@student.canterbury.ac.nz> | 4 * Copyright (C) 2006 Oliver Hunt <ojh16@student.canterbury.ac.nz> |
5 * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org> | 5 * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org> |
6 * Copyright (C) 2008 Rob Buis <buis@kde.org> | 6 * Copyright (C) 2008 Rob Buis <buis@kde.org> |
7 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> | 7 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> |
8 * Copyright (C) Research In Motion Limited 2010-2012. All rights reserved. | 8 * Copyright (C) Research In Motion Limited 2010-2012. All rights reserved. |
9 * Copyright (C) 2012 Google Inc. | 9 * Copyright (C) 2012 Google Inc. |
10 * | 10 * |
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
436 RootInlineBox* box = new SVGRootInlineBox(this); | 436 RootInlineBox* box = new SVGRootInlineBox(this); |
437 box->setHasVirtualLogicalHeight(); | 437 box->setHasVirtualLogicalHeight(); |
438 return box; | 438 return box; |
439 } | 439 } |
440 | 440 |
441 bool RenderSVGText::nodeAtFloatPoint(const HitTestRequest& request, HitTestResul
t& result, const FloatPoint& pointInParent, HitTestAction hitTestAction) | 441 bool RenderSVGText::nodeAtFloatPoint(const HitTestRequest& request, HitTestResul
t& result, const FloatPoint& pointInParent, HitTestAction hitTestAction) |
442 { | 442 { |
443 PointerEventsHitRules hitRules(PointerEventsHitRules::SVG_TEXT_HITTESTING, r
equest, style()->pointerEvents()); | 443 PointerEventsHitRules hitRules(PointerEventsHitRules::SVG_TEXT_HITTESTING, r
equest, style()->pointerEvents()); |
444 bool isVisible = (style()->visibility() == VISIBLE); | 444 bool isVisible = (style()->visibility() == VISIBLE); |
445 if (isVisible || !hitRules.requireVisible) { | 445 if (isVisible || !hitRules.requireVisible) { |
446 if ((hitRules.canHitStroke && (style()->svgStyle()->hasStroke() || !hitR
ules.requireStroke)) | 446 if ((hitRules.canHitBoundingBox && !objectBoundingBox().isEmpty()) |
| 447 || (hitRules.canHitStroke && (style()->svgStyle()->hasStroke() || !h
itRules.requireStroke)) |
447 || (hitRules.canHitFill && (style()->svgStyle()->hasFill() || !hitRu
les.requireFill))) { | 448 || (hitRules.canHitFill && (style()->svgStyle()->hasFill() || !hitRu
les.requireFill))) { |
448 FloatPoint localPoint = localToParentTransform().inverse().mapPoint(
pointInParent); | 449 FloatPoint localPoint = localToParentTransform().inverse().mapPoint(
pointInParent); |
449 | 450 |
450 if (!SVGRenderSupport::pointInClippingArea(this, localPoint)) | 451 if (!SVGRenderSupport::pointInClippingArea(this, localPoint)) |
451 return false; | 452 return false; |
| 453 if (hitRules.canHitBoundingBox && !objectBoundingBox().contains(loca
lPoint)) |
| 454 return false; |
452 | 455 |
453 HitTestLocation hitTestLocation(LayoutPoint(flooredIntPoint(localPoi
nt))); | 456 HitTestLocation hitTestLocation(LayoutPoint(flooredIntPoint(localPoi
nt))); |
454 return RenderBlock::nodeAtPoint(request, result, hitTestLocation, La
youtPoint(), hitTestAction); | 457 return RenderBlock::nodeAtPoint(request, result, hitTestLocation, La
youtPoint(), hitTestAction); |
455 } | 458 } |
456 } | 459 } |
457 | 460 |
458 return false; | 461 return false; |
459 } | 462 } |
460 | 463 |
461 bool RenderSVGText::nodeAtPoint(const HitTestRequest&, HitTestResult&, const Hit
TestLocation&, const LayoutPoint&, HitTestAction) | 464 bool RenderSVGText::nodeAtPoint(const HitTestRequest&, HitTestResult&, const Hit
TestLocation&, const LayoutPoint&, HitTestAction) |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
552 return 0; | 555 return 0; |
553 } | 556 } |
554 | 557 |
555 // Fix for <rdar://problem/8048875>. We should not render :first-letter CSS Styl
e | 558 // Fix for <rdar://problem/8048875>. We should not render :first-letter CSS Styl
e |
556 // in a SVG text element context. | 559 // in a SVG text element context. |
557 void RenderSVGText::updateFirstLetter() | 560 void RenderSVGText::updateFirstLetter() |
558 { | 561 { |
559 } | 562 } |
560 | 563 |
561 } | 564 } |
OLD | NEW |