summaryrefslogtreecommitdiffstats
path: root/WebKit/android/jni
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-01-22 00:13:42 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-01-22 00:13:42 -0800
commitf7e76168422a049a356179665d34ddfb74184920 (patch)
treefcec0de1891e83e86d93259cc2b46b6cee499b64 /WebKit/android/jni
parent528e2187562372a650037bc65fc4446ac2ff0772 (diff)
downloadexternal_webkit-f7e76168422a049a356179665d34ddfb74184920.zip
external_webkit-f7e76168422a049a356179665d34ddfb74184920.tar.gz
external_webkit-f7e76168422a049a356179665d34ddfb74184920.tar.bz2
auto import from //branches/cupcake/...@127436
Diffstat (limited to 'WebKit/android/jni')
-rw-r--r--WebKit/android/jni/WebViewCore.cpp25
1 files changed, 13 insertions, 12 deletions
diff --git a/WebKit/android/jni/WebViewCore.cpp b/WebKit/android/jni/WebViewCore.cpp
index 6aa92cb..64bfd8f 100644
--- a/WebKit/android/jni/WebViewCore.cpp
+++ b/WebKit/android/jni/WebViewCore.cpp
@@ -1684,20 +1684,21 @@ void WebViewCore::touchUp(int touchGeneration, int buildGeneration,
bool WebViewCore::handleMouseClick(WebCore::Frame* framePtr, WebCore::Node* nodePtr)
{
- if (framePtr && !FrameLoaderClientAndroid::get(m_mainFrame)->getCacheBuilder().validNode(framePtr, nodePtr))
- return false;
+ bool valid = framePtr == NULL || FrameLoaderClientAndroid::get(
+ m_mainFrame)->getCacheBuilder().validNode(framePtr, nodePtr);
WebFrame* webFrame = WebFrame::getWebFrame(m_mainFrame);
+ if (valid && nodePtr) {
// Need to special case area tags because an image map could have an area element in the middle
// so when attempting to get the default, the point chosen would be follow the wrong link.
- if (nodePtr && nodePtr->hasTagName(WebCore::HTMLNames::areaTag)) {
- webFrame->setUserInitiatedClick(true);
- WebCore::EventTargetNodeCast(nodePtr)->dispatchSimulatedClick(0, true, true);
- webFrame->setUserInitiatedClick(false);
- return true;
- }
- WebCore::RenderObject* renderer = nodePtr ? nodePtr->renderer() : 0;
- if (renderer) {
- if (renderer->isMenuList()) {
+ if (nodePtr->hasTagName(WebCore::HTMLNames::areaTag)) {
+ webFrame->setUserInitiatedClick(true);
+ WebCore::EventTargetNodeCast(nodePtr)->dispatchSimulatedClick(0,
+ true, true);
+ webFrame->setUserInitiatedClick(false);
+ return true;
+ }
+ WebCore::RenderObject* renderer = nodePtr->renderer();
+ if (renderer && renderer->isMenuList()) {
WebCore::HTMLSelectElement* select = static_cast<WebCore::HTMLSelectElement*>(nodePtr);
const WTF::Vector<WebCore::HTMLElement*>& listItems = select->listItems();
SkTDArray<const uint16_t*> names;
@@ -1727,7 +1728,7 @@ bool WebViewCore::handleMouseClick(WebCore::Frame* framePtr, WebCore::Node* node
return true;
}
}
- if (!framePtr)
+ if (!valid || !framePtr)
framePtr = m_mainFrame;
webFrame->setUserInitiatedClick(true);
DBG_NAV_LOGD("m_mousePos={%d,%d}", m_mousePos.x(), m_mousePos.y());