aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/com/android/inputmethod/latin')
-rw-r--r--java/src/com/android/inputmethod/latin/WordComposer.java20
-rw-r--r--java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java6
2 files changed, 19 insertions, 7 deletions
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java
index cdd782244..df7958470 100644
--- a/java/src/com/android/inputmethod/latin/WordComposer.java
+++ b/java/src/com/android/inputmethod/latin/WordComposer.java
@@ -175,20 +175,30 @@ public final class WordComposer {
}
/**
- * Process an input event.
+ * Process an event and return an event, and return a processed event to apply.
+ * @param event the unprocessed event.
+ * @return the processed event.
+ */
+ public Event processEvent(final Event event) {
+ final Event processedEvent = mCombinerChain.processEvent(mEvents, event);
+ mEvents.add(event);
+ return processedEvent;
+ }
+
+ /**
+ * Apply a processed input event.
*
* All input events should be supported, including software/hardware events, characters as well
* as deletions, multiple inputs and gestures.
*
- * @param event the event to process.
+ * @param event the event to apply.
*/
- public void processEvent(final Event event) {
+ public void applyProcessedEvent(final Event event) {
final int primaryCode = event.mCodePoint;
final int keyX = event.mX;
final int keyY = event.mY;
final int newIndex = size();
- mCombinerChain.processEvent(mEvents, event);
- mEvents.add(event);
+ mCombinerChain.applyProcessedEvent(event);
refreshTypedWordCache();
mCursorPositionWithinWord = mCodePointSize;
// We may have deleted the last one.
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index 74d879919..bb2d304a6 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -762,7 +762,8 @@ public final class InputLogic {
resetComposingState(false /* alsoResetLastComposedWord */);
}
if (isComposingWord) {
- mWordComposer.processEvent(inputTransaction.mEvent);
+ final Event processedEvent = mWordComposer.processEvent(inputTransaction.mEvent);
+ mWordComposer.applyProcessedEvent(processedEvent);
// If it's the first letter, make note of auto-caps state
if (mWordComposer.isSingleLetter()) {
mWordComposer.setCapitalizedModeAtStartComposingTime(inputTransaction.mShiftState);
@@ -933,7 +934,8 @@ public final class InputLogic {
mDictionaryFacilitator.removeWordFromPersonalizedDicts(rejectedSuggestion);
}
} else {
- mWordComposer.processEvent(inputTransaction.mEvent);
+ final Event processedEvent = mWordComposer.processEvent(inputTransaction.mEvent);
+ mWordComposer.applyProcessedEvent(processedEvent);
}
if (mWordComposer.isComposingWord()) {
mConnection.setComposingText(getTextWithUnderline(mWordComposer.getTypedWord()), 1);