diff options
author | Cary Clark <cary@android.com> | 2010-12-09 14:00:42 -0500 |
---|---|---|
committer | Cary Clark <cary@android.com> | 2010-12-09 14:00:42 -0500 |
commit | c9d6325f8d0224620352e73b5499eb0e64690712 (patch) | |
tree | 6aaba0c8311fe90e96ad79987ce9f944185bff8e | |
parent | 5587714d67bfe95c78f6dc202757dc3e04d5b3a4 (diff) | |
download | external_webkit-c9d6325f8d0224620352e73b5499eb0e64690712.zip external_webkit-c9d6325f8d0224620352e73b5499eb0e64690712.tar.gz external_webkit-c9d6325f8d0224620352e73b5499eb0e64690712.tar.bz2 |
look for the parent anchor
The node hit may be the text inside an anchor, so chase
the parent containership to the first element before testing.
bug:3263340
Change-Id: I2e2e4b1342024deef5539d7eb4dbd376a8b329f4
-rw-r--r-- | WebKit/android/jni/WebViewCore.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/WebKit/android/jni/WebViewCore.cpp b/WebKit/android/jni/WebViewCore.cpp index 228c16b..c62ae0e 100644 --- a/WebKit/android/jni/WebViewCore.cpp +++ b/WebKit/android/jni/WebViewCore.cpp @@ -1346,9 +1346,15 @@ WebCore::HTMLAnchorElement* WebViewCore::retrieveAnchorElement(int x, int y) return 0; } Node* node = hitTestResult.innerNode(); - if (!node->hasTagName(WebCore::HTMLNames::aTag)) + Node* element = node; + while (element && !element->isElementNode()) + element = element->parentNode(); + DBG_NAV_LOGD("node=%p element=%p x=%d y=%d nodeName=%s tagName=%s", node, + element, x, y, node->nodeName().utf8().data(), + ((Element*) element)->tagName().utf8().data()); + if (!element->hasTagName(WebCore::HTMLNames::aTag)) return 0; - return static_cast<WebCore::HTMLAnchorElement*>(node); + return static_cast<WebCore::HTMLAnchorElement*>(element); } WTF::String WebViewCore::retrieveHref(int x, int y) |