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

Side by Side Diff: third_party/WebKit/Source/core/layout/svg/LayoutSVGShape.cpp

Issue 1630793002: Stop hit testing culled inlines when a match is found (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Simpler approach, but duplicated code Created 4 years, 10 months 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) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> 2 * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) 2004, 2005, 2008 Rob Buis <buis@kde.org> 3 * Copyright (C) 2004, 2005, 2008 Rob Buis <buis@kde.org>
4 * Copyright (C) 2005, 2007 Eric Seidel <eric@webkit.org> 4 * Copyright (C) 2005, 2007 Eric Seidel <eric@webkit.org>
5 * Copyright (C) 2009 Google, Inc. 5 * Copyright (C) 2009 Google, Inc.
6 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> 6 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
7 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 7 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
8 * Copyright (C) 2009 Jeff Schiller <codedread@gmail.com> 8 * Copyright (C) 2009 Jeff Schiller <codedread@gmail.com>
9 * Copyright (C) 2011 Renata Hodovan <reni@webkit.org> 9 * Copyright (C) 2011 Renata Hodovan <reni@webkit.org>
10 * Copyright (C) 2011 University of Szeged 10 * Copyright (C) 2011 University of Szeged
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 return false; 215 return false;
216 216
217 FloatPoint localPoint; 217 FloatPoint localPoint;
218 if (!SVGLayoutSupport::transformToUserSpaceAndCheckClipping(this, localToPar entTransform(), pointInParent, localPoint)) 218 if (!SVGLayoutSupport::transformToUserSpaceAndCheckClipping(this, localToPar entTransform(), pointInParent, localPoint))
219 return false; 219 return false;
220 220
221 PointerEventsHitRules hitRules(PointerEventsHitRules::SVG_GEOMETRY_HITTESTIN G, result.hitTestRequest(), style()->pointerEvents()); 221 PointerEventsHitRules hitRules(PointerEventsHitRules::SVG_GEOMETRY_HITTESTIN G, result.hitTestRequest(), style()->pointerEvents());
222 if (nodeAtFloatPointInternal(result.hitTestRequest(), localPoint, hitRules)) { 222 if (nodeAtFloatPointInternal(result.hitTestRequest(), localPoint, hitRules)) {
223 const LayoutPoint& localLayoutPoint = roundedLayoutPoint(localPoint); 223 const LayoutPoint& localLayoutPoint = roundedLayoutPoint(localPoint);
224 updateHitTestResult(result, localLayoutPoint); 224 updateHitTestResult(result, localLayoutPoint);
225 if (!result.addNodeToListBasedTestResult(element(), localLayoutPoint)) 225 if (result.addNodeToListBasedTestResult(element(), localLayoutPoint) == StopHitTesting)
226 return true; 226 return true;
227 } 227 }
228 228
229 return false; 229 return false;
230 } 230 }
231 231
232 bool LayoutSVGShape::nodeAtFloatPointInternal(const HitTestRequest& request, con st FloatPoint& localPoint, PointerEventsHitRules hitRules) 232 bool LayoutSVGShape::nodeAtFloatPointInternal(const HitTestRequest& request, con st FloatPoint& localPoint, PointerEventsHitRules hitRules)
233 { 233 {
234 bool isVisible = (style()->visibility() == VISIBLE); 234 bool isVisible = (style()->visibility() == VISIBLE);
235 if (isVisible || !hitRules.requireVisible) { 235 if (isVisible || !hitRules.requireVisible) {
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 } 296 }
297 297
298 LayoutSVGShapeRareData& LayoutSVGShape::ensureRareData() const 298 LayoutSVGShapeRareData& LayoutSVGShape::ensureRareData() const
299 { 299 {
300 if (!m_rareData) 300 if (!m_rareData)
301 m_rareData = adoptPtr(new LayoutSVGShapeRareData()); 301 m_rareData = adoptPtr(new LayoutSVGShapeRareData());
302 return *m_rareData.get(); 302 return *m_rareData.get();
303 } 303 }
304 304
305 } // namespace blink 305 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698