diff options
author | 2014-08-04 04:09:54 +0000 | |
---|---|---|
committer | 2014-08-04 04:09:54 +0000 | |
commit | d9e41aac3fdf6e81ed7f2487cd9c74c28734a5e2 (patch) | |
tree | 42ced7a4554655ce9f07792b61c0812897643570 /java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java | |
parent | 9681027aade82febb2ba5e384d9c6f77511859d3 (diff) | |
parent | 85b7b967b70393815da78aa4bae1938dbf9bbe1a (diff) | |
download | latinime-d9e41aac3fdf6e81ed7f2487cd9c74c28734a5e2.tar.gz latinime-d9e41aac3fdf6e81ed7f2487cd9c74c28734a5e2.tar.xz latinime-d9e41aac3fdf6e81ed7f2487cd9c74c28734a5e2.zip |
am 85b7b967: Merge "[HW12] Use the consumed status of the Event." into lmp-dev
* commit '85b7b967b70393815da78aa4bae1938dbf9bbe1a':
[HW12] Use the consumed status of the Event.
Diffstat (limited to 'java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java index e2feb7c4d..dee7cd466 100644 --- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java +++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java @@ -206,7 +206,7 @@ public final class InputLogic { final int keyboardShiftMode, // TODO: remove this argument final LatinIME.UIHandler handler) { - final String rawText = event.mText.toString(); + final String rawText = event.getTextToCommit().toString(); final InputTransaction inputTransaction = new InputTransaction(settingsValues, event, SystemClock.uptimeMillis(), mSpaceState, getActualCapsMode(settingsValues, keyboardShiftMode)); @@ -416,6 +416,8 @@ public final class InputLogic { mLastKeyTime = inputTransaction.mTimestamp; mConnection.beginBatchEdit(); if (!mWordComposer.isComposingWord()) { + // TODO: is this useful? It doesn't look like it should be done here, but rather after + // a word is committed. mIsAutoCorrectionIndicatorOn = false; } @@ -425,7 +427,21 @@ public final class InputLogic { } boolean didAutoCorrect = false; - if (processedEvent.isFunctionalKeyEvent()) { + if (processedEvent.isConsumed()) { + // A consumed event may have text to commit and an update to the composing state, so + // we evaluate both. With some combiners, it's possible than an event contains both + // and we enter both of the following if clauses. + final CharSequence textToCommit = processedEvent.getTextToCommit(); + if (!TextUtils.isEmpty(textToCommit)) { + mConnection.commitText(textToCommit, 1); + inputTransaction.setDidAffectContents(); + } + if (mWordComposer.isComposingWord()) { + mConnection.setComposingText(mWordComposer.getTypedWord(), 1); + inputTransaction.setDidAffectContents(); + inputTransaction.setRequiresUpdateSuggestions(); + } + } else if (processedEvent.isFunctionalKeyEvent()) { // A special key, like delete, shift, emoji, or the settings key. switch (processedEvent.mKeyCode) { case Constants.CODE_DELETE: |