diff options
author | 2014-04-16 10:45:42 +0000 | |
---|---|---|
committer | 2014-04-16 10:45:42 +0000 | |
commit | 93e166338a599de3e193aaa5d14d3ad7372e455d (patch) | |
tree | c9d83bf60dc9977e0f2cba7699188e50e015742c | |
parent | 73a1841dfb869b277ac9430b2546f81a755e56fc (diff) | |
parent | ba635ad30d4a0951860448a628ccc1a5cb1eb466 (diff) | |
download | latinime-93e166338a599de3e193aaa5d14d3ad7372e455d.tar.gz latinime-93e166338a599de3e193aaa5d14d3ad7372e455d.tar.xz latinime-93e166338a599de3e193aaa5d14d3ad7372e455d.zip |
am ba635ad3: Merge "Restart suggestions when restarting input"
* commit 'ba635ad30d4a0951860448a628ccc1a5cb1eb466':
Restart suggestions when restarting input
3 files changed, 9 insertions, 3 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 2a67cb2a1..a1f70e8d5 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -819,9 +819,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen // When rotating, initialSelStart and initialSelEnd sometimes are lying. Make a best // effort to work around this bug. mInputLogic.mConnection.tryFixLyingCursorPosition(); - if (isDifferentTextField) { - mHandler.postResumeSuggestions(); - } + mHandler.postResumeSuggestions(); canReachInputConnection = true; } diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java index 491d98074..f1f906042 100644 --- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java +++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java @@ -1284,6 +1284,10 @@ public final class InputLogic { || !settingsValues.mSpacingAndPunctuations.mCurrentLanguageHasSpaces // If no suggestions are requested, don't try restarting suggestions. || !settingsValues.isSuggestionsRequested() + // If we are currently in a batch input, we must not resume suggestions, or the result + // of the batch input will replace the new composition. This may happen in the corner case + // that the app moves the cursor on its own accord during a batch input. + || mInputLogicHandler.isInBatchInput() // If the cursor is not touching a word, or if there is a selection, return right away. || mConnection.hasSelection() // If we don't know the cursor location, return. diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogicHandler.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogicHandler.java index 64bba681f..9dbe2c38b 100644 --- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogicHandler.java +++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogicHandler.java @@ -110,6 +110,10 @@ class InputLogicHandler implements Handler.Callback { } } + public boolean isInBatchInput() { + return mInBatchInput; + } + /** * Fetch suggestions corresponding to an update of a batch input. * @param batchPointers the updated pointers, including the part that was passed last time. |