Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(400)

Side by Side Diff: Source/core/rendering/svg/RenderSVGText.cpp

Issue 45733010: Add pointer-events="bounding-box" for svg content. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: make assert more specific Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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 }
OLDNEW
« no previous file with comments | « Source/core/rendering/svg/RenderSVGShape.cpp ('k') | Source/core/rendering/svg/SVGInlineTextBox.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698