diff options
Diffstat (limited to 'java/src/com/android/inputmethod/event')
3 files changed, 18 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/event/Combiner.java b/java/src/com/android/inputmethod/event/Combiner.java index bdc761234..8b808c6b3 100644 --- a/java/src/com/android/inputmethod/event/Combiner.java +++ b/java/src/com/android/inputmethod/event/Combiner.java @@ -40,4 +40,9 @@ public interface Combiner { * @return A CharSequence representing the feedback to show users. It may include styles. */ CharSequence getCombiningStateFeedback(); + + /** + * Reset the state of this combiner, for example when the cursor was moved. + */ + void reset(); } diff --git a/java/src/com/android/inputmethod/event/CombinerChain.java b/java/src/com/android/inputmethod/event/CombinerChain.java index cf2a4d1a1..5ca9842c1 100644 --- a/java/src/com/android/inputmethod/event/CombinerChain.java +++ b/java/src/com/android/inputmethod/event/CombinerChain.java @@ -58,6 +58,14 @@ public class CombinerChain { mStateFeedback = new SpannableStringBuilder(); } + public void reset() { + mCombinedText.setLength(0); + mStateFeedback.clear(); + for (final Combiner c : mCombiners) { + c.reset(); + } + } + /** * Pass a new event through the whole chain. * @param previousEvents the list of previous events in this composition diff --git a/java/src/com/android/inputmethod/event/DeadKeyCombiner.java b/java/src/com/android/inputmethod/event/DeadKeyCombiner.java index f891017a3..89e623a1d 100644 --- a/java/src/com/android/inputmethod/event/DeadKeyCombiner.java +++ b/java/src/com/android/inputmethod/event/DeadKeyCombiner.java @@ -63,6 +63,11 @@ public class DeadKeyCombiner implements Combiner { } @Override + public void reset() { + mDeadSequence.setLength(0); + } + + @Override public CharSequence getCombiningStateFeedback() { return mDeadSequence; } |