summaryrefslogtreecommitdiffstats
path: root/WebKit/android/jni
diff options
context:
space:
mode:
authorCary Clark <cary@android.com>2009-06-24 11:27:13 -0400
committerCary Clark <cary@android.com>2009-06-24 14:12:54 -0400
commit0181faa1ffede024c2712df19ae7c855a8cf64e3 (patch)
treeb8bc2dd39718cfd707195fd95031c564d602162d /WebKit/android/jni
parent8520036e325f7e1ef2351410a555610f05d15957 (diff)
downloadexternal_webkit-0181faa1ffede024c2712df19ae7c855a8cf64e3.zip
external_webkit-0181faa1ffede024c2712df19ae7c855a8cf64e3.tar.gz
external_webkit-0181faa1ffede024c2712df19ae7c855a8cf64e3.tar.bz2
set trackball click to the edge of the text field, not the middle
Add clicking, key debug statements in WebViewCore.cpp. Fix dumping nav tree to use NamedNodeMap. Set click point to be start of text field, end of text area, middle of others. Make CachedRoot::getSimulatedMousePosition, callers const
Diffstat (limited to 'WebKit/android/jni')
-rw-r--r--WebKit/android/jni/WebViewCore.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/WebKit/android/jni/WebViewCore.cpp b/WebKit/android/jni/WebViewCore.cpp
index 29cfd3a..9cf48dd 100644
--- a/WebKit/android/jni/WebViewCore.cpp
+++ b/WebKit/android/jni/WebViewCore.cpp
@@ -1418,8 +1418,10 @@ void WebViewCore::passToJs(
int keyValue, bool down, bool cap, bool fn, bool sym)
{
WebCore::Node* focus = currentFocus();
- if (!focus)
+ if (!focus) {
+ DBG_NAV_LOG("!focus");
return;
+ }
WebCore::Frame* frame = focus->document()->frame();
// Construct the ModifierKey value
WebCore::PlatformKeyboardEvent::ModifierKey mods =
@@ -1437,14 +1439,18 @@ void WebViewCore::passToJs(
m_textGeneration = generation;
DBG_NAV_LOGD("focus=%p keyCode=%d keyValue=%d", focus, keyCode, keyValue);
WebCore::RenderObject* renderer = focus->renderer();
- if (!renderer || (!renderer->isTextField() && !renderer->isTextArea()))
+ if (!renderer || (!renderer->isTextField() && !renderer->isTextArea())) {
+ DBG_NAV_LOGD("renderer==%p || not text", renderer);
return;
+ }
setFocusControllerActive(true);
WebCore::RenderTextControl* renderText =
static_cast<WebCore::RenderTextControl*>(renderer);
WebCore::String test = renderText->text();
- if (test == current)
+ if (test == current) {
+ DBG_NAV_LOG("test == current");
return;
+ }
// If the text changed during the key event, update the UI text field.
updateTextfield(focus, false, test);
}
@@ -1656,6 +1662,9 @@ bool WebViewCore::click() {
WebCore::HitTestResult hitTestResult = m_mainFrame->eventHandler()->
hitTestResultAtPoint(pt, false);
WebCore::Node* focusNode = hitTestResult.innerNode();
+ DBG_NAV_LOGD("m_mousePos=(%d,%d) m_scrollOffset=(%d,%d) pt=(%d,%d)"
+ " focusNode=%p", m_mousePos.x(), m_mousePos.y(),
+ m_scrollOffsetX, m_scrollOffsetY, pt.x(), pt.y(), focusNode);
if (focusNode) {
keyHandled = handleMouseClick(focusNode->document()->frame(), focusNode);
}
@@ -1724,6 +1733,7 @@ bool WebViewCore::handleMouseClick(WebCore::Frame* framePtr, WebCore::Node* node
webFrame->setUserInitiatedClick(true);
nodePtr->dispatchSimulatedClick(0, true, true);
webFrame->setUserInitiatedClick(false);
+ DBG_NAV_LOG("area");
return true;
}
WebCore::RenderObject* renderer = nodePtr->renderer();
@@ -1755,13 +1765,13 @@ bool WebViewCore::handleMouseClick(WebCore::Frame* framePtr, WebCore::Node* node
listBoxRequest(reply, names.begin(), size, enabledArray.begin(), enabledArray.count(),
multiple, selectedArray.begin(), multiple ? selectedArray.count() :
selectElement->optionToListIndex(select->selectedIndex()));
+ DBG_NAV_LOG("menu list");
return true;
}
}
if (!valid || !framePtr)
framePtr = m_mainFrame;
webFrame->setUserInitiatedClick(true);
- DBG_NAV_LOGD("m_mousePos={%d,%d}", m_mousePos.x(), m_mousePos.y());
WebCore::PlatformMouseEvent mouseDown(m_mousePos, m_mousePos, WebCore::LeftButton,
WebCore::MouseEventPressed, 1, false, false, false, false,
WTF::currentTime());
@@ -1776,6 +1786,8 @@ bool WebViewCore::handleMouseClick(WebCore::Frame* framePtr, WebCore::Node* node
// If the user clicked on a textfield, make the focusController active
// so we show the blinking cursor.
WebCore::Node* focusNode = currentFocus();
+ DBG_NAV_LOGD("m_mousePos={%d,%d} focusNode=%p handled=%s", m_mousePos.x(),
+ m_mousePos.y(), focusNode, handled ? "true" : "false");
if (focusNode) {
WebCore::RenderObject* renderer = focusNode->renderer();
if (renderer && (renderer->isTextField() || renderer->isTextArea()))