From 85e3844824444f304a15e57f62d2e5670fb3bf47 Mon Sep 17 00:00:00 2001 From: Michael Kolb Date: Tue, 11 Oct 2011 14:05:45 -0700 Subject: [PATCH] Support spellcheck attribute in input fields Bug: 5267547 When spellcheck is set to false, disable the IME suggestions and the spelling error highlighting Change-Id: Ib62bc760334159aa086214cc6f1388d1abe89cb4 --- Source/WebKit/android/nav/CacheBuilder.cpp | 1 + Source/WebKit/android/nav/CachedInput.h | 3 +++ Source/WebKit/android/nav/WebView.cpp | 8 ++++++++ 3 files changed, 12 insertions(+) diff --git a/Source/WebKit/android/nav/CacheBuilder.cpp b/Source/WebKit/android/nav/CacheBuilder.cpp index 3ec15f38d..a4bc758ff 100644 --- a/Source/WebKit/android/nav/CacheBuilder.cpp +++ b/Source/WebKit/android/nav/CacheBuilder.cpp @@ -1246,6 +1246,7 @@ void CacheBuilder::BuildFrame(Frame* root, Frame* frame, type = TEXT_INPUT_CACHEDNODETYPE; cachedInput.init(); cachedInput.setAutoComplete(input->autoComplete()); + cachedInput.setSpellcheck(input->spellcheck()); cachedInput.setFormPointer(input->form()); cachedInput.setIsTextField(true); exported = input->value().threadsafeCopy(); diff --git a/Source/WebKit/android/nav/CachedInput.h b/Source/WebKit/android/nav/CachedInput.h index a3eabc736..77ae57bb8 100644 --- a/Source/WebKit/android/nav/CachedInput.h +++ b/Source/WebKit/android/nav/CachedInput.h @@ -78,7 +78,9 @@ public: void setPaddingLeft(int left) { mPaddingLeft = left; } void setPaddingRight(int right) { mPaddingRight = right; } void setPaddingTop(int top) { mPaddingTop = top; } + void setSpellcheck(bool spellcheck) { mSpellcheck = spellcheck; } void setTextSize(float textSize) { mTextSize = textSize; } + bool spellcheck() const { return mSpellcheck; } float textSize() const { return mTextSize; } private: @@ -94,6 +96,7 @@ private: float mTextSize; Type mType; bool mAutoComplete : 1; + bool mSpellcheck : 1; bool mIsRtlText : 1; bool mIsTextField : 1; bool mIsTextArea : 1; diff --git a/Source/WebKit/android/nav/WebView.cpp b/Source/WebKit/android/nav/WebView.cpp index 1dcc7c4b8..d062db3ea 100644 --- a/Source/WebKit/android/nav/WebView.cpp +++ b/Source/WebKit/android/nav/WebView.cpp @@ -2125,6 +2125,12 @@ static jint nativeFocusCandidatePointer(JNIEnv *env, jobject obj) return reinterpret_cast(node ? node->nodePointer() : 0); } +static jint nativeFocusCandidateIsSpellcheck(JNIEnv *env, jobject obj) +{ + const CachedInput* input = getInputCandidate(env, obj); + return input ? input->spellcheck() : false; +} + static jobject nativeFocusCandidateText(JNIEnv *env, jobject obj) { const CachedNode* node = getFocusCandidate(env, obj, 0); @@ -2835,6 +2841,8 @@ static JNINativeMethod gJavaWebViewMethods[] = { (void*) nativeFocusCandidateMaxLength }, { "nativeFocusCandidateIsAutoComplete", "()Z", (void*) nativeFocusCandidateIsAutoComplete }, + { "nativeFocusCandidateIsSpellcheck", "()Z", + (void*) nativeFocusCandidateIsSpellcheck }, { "nativeFocusCandidateName", "()Ljava/lang/String;", (void*) nativeFocusCandidateName }, { "nativeFocusCandidateNodeBounds", "()Landroid/graphics/Rect;", -- 2.11.0