Chromium Code Reviews| Index: content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java |
| diff --git a/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java b/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java |
| index d7f70154e5fef20d7d0675f27394d7e41102cd08..d83bdef25f5a6193c842e7bd4221b100225f95d9 100644 |
| --- a/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java |
| +++ b/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java |
| @@ -620,18 +620,34 @@ public class ImeAdapter { |
| boolean performEditorAction(int actionCode) { |
| if (!isValid()) return false; |
| - if (actionCode == EditorInfo.IME_ACTION_NEXT) { |
| - sendSyntheticKeyPress(KeyEvent.KEYCODE_TAB, |
| - KeyEvent.FLAG_SOFT_KEYBOARD | KeyEvent.FLAG_KEEP_TOUCH_MODE |
| - | KeyEvent.FLAG_EDITOR_ACTION); |
| - } else { |
| - sendSyntheticKeyPress(KeyEvent.KEYCODE_ENTER, |
| - KeyEvent.FLAG_SOFT_KEYBOARD | KeyEvent.FLAG_KEEP_TOUCH_MODE |
| - | KeyEvent.FLAG_EDITOR_ACTION); |
| + switch (actionCode) { |
| + case EditorInfo.IME_ACTION_NEXT: |
| + restartInput(); |
|
Changwan Ryu
2017/04/27 16:34:53
I don't think you need to restart input here at al
AKVT
2017/05/03 14:35:11
Done.
|
| + advanceFocusInForm(true); |
| + break; |
| + case EditorInfo.IME_ACTION_PREVIOUS: |
| + restartInput(); |
| + advanceFocusInForm(false); |
| + break; |
| + default: |
| + sendSyntheticKeyPress(KeyEvent.KEYCODE_ENTER, |
| + KeyEvent.FLAG_SOFT_KEYBOARD | KeyEvent.FLAG_KEEP_TOUCH_MODE |
| + | KeyEvent.FLAG_EDITOR_ACTION); |
| + break; |
| } |
| return true; |
| } |
| + /** |
| + * Advances the focus to next input field in the current form. |
| + * |
| + * @param forward indicates whether to advance forward or backward direction. |
| + */ |
| + public void advanceFocusInForm(boolean forward) { |
|
Changwan Ryu
2017/04/27 16:34:53
public -> private
AKVT
2017/05/03 14:35:11
Done.
|
| + if (mNativeImeAdapterAndroid == 0) return; |
| + nativeAdvanceFocusInForm(mNativeImeAdapterAndroid, forward); |
| + } |
| + |
| void notifyUserAction() { |
| mInputMethodManagerWrapper.notifyUserAction(); |
| } |
| @@ -907,4 +923,5 @@ public class ImeAdapter { |
| private native boolean nativeRequestTextInputStateUpdate(long nativeImeAdapterAndroid); |
| private native void nativeRequestCursorUpdate(long nativeImeAdapterAndroid, |
| boolean immediateRequest, boolean monitorRequest); |
| + private native void nativeAdvanceFocusInForm(long nativeImeAdapterAndroid, boolean forward); |
| } |