diff options
| author | Cary Clark <cary@android.com> | 2009-06-25 10:47:16 -0400 |
|---|---|---|
| committer | Cary Clark <cary@android.com> | 2009-06-29 09:05:25 -0400 |
| commit | 9ef86237529ed76780c62ff0e49c8a0a85a6562c (patch) | |
| tree | 9d66e42fd31f7a14c0e21c84f00d6e34c30d13d0 /WebKit | |
| parent | b6631b666120e63a9ceee4a77613cf962fa37b1f (diff) | |
| download | external_webkit-9ef86237529ed76780c62ff0e49c8a0a85a6562c.zip external_webkit-9ef86237529ed76780c62ff0e49c8a0a85a6562c.tar.gz external_webkit-9ef86237529ed76780c62ff0e49c8a0a85a6562c.tar.bz2 | |
Remove the web text view if the key press is abandoned
Requires companion change in frameworks/base
Diffstat (limited to 'WebKit')
| -rw-r--r-- | WebKit/android/jni/WebViewCore.cpp | 11 | ||||
| -rw-r--r-- | WebKit/android/jni/WebViewCore.h | 2 |
2 files changed, 12 insertions, 1 deletions
diff --git a/WebKit/android/jni/WebViewCore.cpp b/WebKit/android/jni/WebViewCore.cpp index 00cd64f..bce07ee 100644 --- a/WebKit/android/jni/WebViewCore.cpp +++ b/WebKit/android/jni/WebViewCore.cpp @@ -164,6 +164,7 @@ struct WebViewCore::JavaGlue { jmethodID m_sendNotifyProgressFinished; jmethodID m_sendViewInvalidate; jmethodID m_updateTextfield; + jmethodID m_clearTextEntry; jmethodID m_restoreScale; jmethodID m_needTouchEvents; jmethodID m_exceededDatabaseQuota; @@ -227,6 +228,7 @@ WebViewCore::WebViewCore(JNIEnv* env, jobject javaWebViewCore, WebCore::Frame* m m_javaGlue->m_sendNotifyProgressFinished = GetJMethod(env, clazz, "sendNotifyProgressFinished", "()V"); m_javaGlue->m_sendViewInvalidate = GetJMethod(env, clazz, "sendViewInvalidate", "(IIII)V"); m_javaGlue->m_updateTextfield = GetJMethod(env, clazz, "updateTextfield", "(IZLjava/lang/String;I)V"); + m_javaGlue->m_clearTextEntry = GetJMethod(env, clazz, "clearTextEntry", "()V"); m_javaGlue->m_restoreScale = GetJMethod(env, clazz, "restoreScale", "(I)V"); m_javaGlue->m_needTouchEvents = GetJMethod(env, clazz, "needTouchEvents", "(Z)V"); m_javaGlue->m_exceededDatabaseQuota = GetJMethod(env, clazz, "exceededDatabaseQuota", "(Ljava/lang/String;Ljava/lang/String;J)V"); @@ -1418,11 +1420,13 @@ void WebViewCore::passToJs(int generation, const WebCore::String& current, WebCore::Node* focus = currentFocus(); if (!focus) { DBG_NAV_LOG("!focus"); + clearTextEntry(); return; } WebCore::RenderObject* renderer = focus->renderer(); if (!renderer || (!renderer->isTextField() && !renderer->isTextArea())) { DBG_NAV_LOGD("renderer==%p || not text", renderer); + clearTextEntry(); return; } // Block text field updates during a key press. @@ -1908,6 +1912,13 @@ void WebViewCore::updateTextfield(WebCore::Node* ptr, bool changeToPassword, checkException(env); } +void WebViewCore::clearTextEntry() +{ + JNIEnv* env = JSC::Bindings::getJNIEnv(); + env->CallVoidMethod(m_javaGlue->object(env).get(), + m_javaGlue->m_clearTextEntry); +} + void WebViewCore::setSnapAnchor(int x, int y) { m_snapAnchorNode = 0; diff --git a/WebKit/android/jni/WebViewCore.h b/WebKit/android/jni/WebViewCore.h index 06e9100..7f38cce 100644 --- a/WebKit/android/jni/WebViewCore.h +++ b/WebKit/android/jni/WebViewCore.h @@ -160,7 +160,7 @@ namespace android { */ void updateTextfield(WebCore::Node* pointer, bool changeToPassword, const WebCore::String& text); - + void clearTextEntry(); // JavaScript support void jsAlert(const WebCore::String& url, const WebCore::String& text); bool jsConfirm(const WebCore::String& url, const WebCore::String& text); |
