summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/RenderImage.cpp
diff options
context:
space:
mode:
authorGrace Kloba <klobag@google.com>2010-05-24 21:45:32 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-05-24 21:45:32 -0700
commita149172322a9067c14e8b474a53e63649aa17cad (patch)
tree19e2be990222e93b9fc75553b57e5abd9708f0b9 /WebCore/rendering/RenderImage.cpp
parent8b2ec69eaf97dd8a817342ca54044d74da6b4b19 (diff)
parent17dcead8ee9edfa8f75e7e2d2284ed3c6f4bd403 (diff)
downloadexternal_webkit-a149172322a9067c14e8b474a53e63649aa17cad.zip
external_webkit-a149172322a9067c14e8b474a53e63649aa17cad.tar.gz
external_webkit-a149172322a9067c14e8b474a53e63649aa17cad.tar.bz2
Merge "First draft to add a fat point to WebKit hit test."
Diffstat (limited to 'WebCore/rendering/RenderImage.cpp')
-rw-r--r--WebCore/rendering/RenderImage.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/WebCore/rendering/RenderImage.cpp b/WebCore/rendering/RenderImage.cpp
index 73cf73c..237dfb6 100644
--- a/WebCore/rendering/RenderImage.cpp
+++ b/WebCore/rendering/RenderImage.cpp
@@ -513,10 +513,18 @@ HTMLMapElement* RenderImage::imageMap() const
bool RenderImage::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, int x, int y, int tx, int ty, HitTestAction hitTestAction)
{
+#ifdef ANDROID_HITTEST_WITHSIZE
+ HitTestResult tempResult(result.point(), result.pointPadding());
+#else
HitTestResult tempResult(result.point());
+#endif
bool inside = RenderReplaced::nodeAtPoint(request, tempResult, x, y, tx, ty, hitTestAction);
+#ifdef ANDROID_HITTEST_WITHSIZE
+ if (tempResult.innerNode() && node()) {
+#else
if (inside && node()) {
+#endif
if (HTMLMapElement* map = imageMap()) {
IntRect contentBox = contentBoxRect();
float zoom = style()->effectiveZoom();
@@ -527,6 +535,10 @@ bool RenderImage::nodeAtPoint(const HitTestRequest& request, HitTestResult& resu
}
}
+#ifdef ANDROID_HITTEST_WITHSIZE
+ if (!inside && result.isRegionTest())
+ result.merge(tempResult);
+#endif
if (inside)
result = tempResult;
return inside;