From a34a5ed95191cbe1cdf7fa59dc005d65b3595887 Mon Sep 17 00:00:00 2001 From: George Mount Date: Fri, 9 Mar 2012 16:58:40 -0800 Subject: [PATCH] Support "prev" for IME input. Bug 6152403 WebKit change: I09e5f63d41bb88a632f70b010e8ab4851bf90bab Change-Id: I6d339d724616b9f156458dd4223d3b991191b13d --- core/java/android/webkit/WebViewClassic.java | 10 +++++++--- core/java/android/webkit/WebViewCore.java | 11 +++++++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/core/java/android/webkit/WebViewClassic.java b/core/java/android/webkit/WebViewClassic.java index 812d89a2c911f..09ce1e2d3a5b7 100644 --- a/core/java/android/webkit/WebViewClassic.java +++ b/core/java/android/webkit/WebViewClassic.java @@ -548,9 +548,13 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc if (!initData.mIsSpellCheckEnabled) { inputType |= InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS; } - if (WebTextView.TEXT_AREA != type - && initData.mIsTextFieldNext) { - imeOptions |= EditorInfo.IME_FLAG_NAVIGATE_NEXT; + if (WebTextView.TEXT_AREA != type) { + if (initData.mIsTextFieldNext) { + imeOptions |= EditorInfo.IME_FLAG_NAVIGATE_NEXT; + } + if (initData.mIsTextFieldPrev) { + imeOptions |= EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS; + } } switch (type) { case WebTextView.NORMAL_TEXT_FIELD: diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java index 8def74bf505b6..77d2641d20da5 100644 --- a/core/java/android/webkit/WebViewCore.java +++ b/core/java/android/webkit/WebViewCore.java @@ -954,14 +954,15 @@ public final class WebViewCore { public TextFieldInitData(int fieldPointer, String text, int type, boolean isSpellCheckEnabled, boolean autoComplete, boolean isTextFieldNext, - String name, String label, int maxLength, - Rect nodeBounds, int nodeLayerId) { + boolean isTextFieldPrev, String name, String label, + int maxLength, Rect nodeBounds, int nodeLayerId) { mFieldPointer = fieldPointer; mText = text; mType = type; mIsAutoCompleteEnabled = autoComplete; mIsSpellCheckEnabled = isSpellCheckEnabled; mIsTextFieldNext = isTextFieldNext; + mIsTextFieldPrev = isTextFieldPrev; mName = name; mLabel = label; mMaxLength = maxLength; @@ -973,6 +974,7 @@ public final class WebViewCore { int mType; boolean mIsSpellCheckEnabled; boolean mIsTextFieldNext; + boolean mIsTextFieldPrev; boolean mIsAutoCompleteEnabled; String mName; String mLabel; @@ -2798,7 +2800,7 @@ public final class WebViewCore { // called by JNI private void initEditField(int pointer, String text, int inputType, boolean isSpellCheckEnabled, boolean isAutoCompleteEnabled, - boolean nextFieldIsText, String name, + boolean nextFieldIsText, boolean prevFieldIsText, String name, String label, int start, int end, int selectionPtr, int maxLength, Rect nodeRect, int nodeLayer) { if (mWebView == null) { @@ -2806,7 +2808,8 @@ public final class WebViewCore { } TextFieldInitData initData = new TextFieldInitData(pointer, text, inputType, isSpellCheckEnabled, isAutoCompleteEnabled, - nextFieldIsText, name, label, maxLength, nodeRect, nodeLayer); + nextFieldIsText, prevFieldIsText, name, label, maxLength, + nodeRect, nodeLayer); Message.obtain(mWebView.mPrivateHandler, WebViewClassic.INIT_EDIT_FIELD, initData).sendToTarget(); Message.obtain(mWebView.mPrivateHandler,