aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--java/src/com/android/inputmethod/latin/WordComposer.java6
-rw-r--r--tests/src/com/android/inputmethod/latin/InputLogicTests.java9
2 files changed, 13 insertions, 2 deletions
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java
index fa1b5ef6c..dd24432f7 100644
--- a/java/src/com/android/inputmethod/latin/WordComposer.java
+++ b/java/src/com/android/inputmethod/latin/WordComposer.java
@@ -212,6 +212,7 @@ public class WordComposer {
final int lastPos = size - 1;
char lastChar = mTypedWord.charAt(lastPos);
mCodes.remove(lastPos);
+ // TODO: This crashes and catches fire if the code point doesn't fit a char
mTypedWord.deleteCharAt(lastPos);
if (Character.isUpperCase(lastChar)) mCapsCount--;
}
@@ -221,8 +222,9 @@ public class WordComposer {
if (mTrailingSingleQuotesCount > 0) {
--mTrailingSingleQuotesCount;
} else {
- for (int i = mTypedWord.offsetByCodePoints(mTypedWord.length(), -1);
- i >= 0; i = mTypedWord.offsetByCodePoints(i, -1)) {
+ int i = mTypedWord.length();
+ while (i > 0) {
+ i = mTypedWord.offsetByCodePoints(i, -1);
if (Keyboard.CODE_SINGLE_QUOTE != mTypedWord.codePointAt(i)) break;
++mTrailingSingleQuotesCount;
}
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTests.java b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
index af647b8ce..ee3a97fab 100644
--- a/tests/src/com/android/inputmethod/latin/InputLogicTests.java
+++ b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
@@ -291,4 +291,13 @@ public class InputLogicTests extends ServiceTestCase<LatinIME> {
assertEquals("manual pick then space then type", WORD1_TO_TYPE + WORD2_TO_TYPE,
mTextView.getText().toString());
}
+
+ public void testDeleteWholeComposingWord() {
+ final String WORD_TO_TYPE = "this";
+ type(WORD_TO_TYPE);
+ for (int i = 0; i < WORD_TO_TYPE.length(); ++i) {
+ type(Keyboard.CODE_DELETE);
+ }
+ assertEquals("delete whole composing word", "", mTextView.getText().toString());
+ }
}