diff options
author | 2013-01-18 00:42:59 -0800 | |
---|---|---|
committer | 2013-01-18 00:42:59 -0800 | |
commit | 2d3858ab574327d462f6f9359f7af89b2d14411e (patch) | |
tree | 3f24211607445b4c6e30a9953d618dcebbe702b4 /java/src | |
parent | 132b94dd07ddeaa12baf03cb927818c0dca035ba (diff) | |
parent | 81a4b7f48e0649c1b984fd25398f45ce813f7cbf (diff) | |
download | latinime-2d3858ab574327d462f6f9359f7af89b2d14411e.tar.gz latinime-2d3858ab574327d462f6f9359f7af89b2d14411e.tar.xz latinime-2d3858ab574327d462f6f9359f7af89b2d14411e.zip |
am 81a4b7f4: Merge "Fix a bug in gesture after a dash or apostrophe"
* commit '81a4b7f48e0649c1b984fd25398f45ce813f7cbf':
Fix a bug in gesture after a dash or apostrophe
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 4f8852b87..f4b7a1708 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -1484,7 +1484,10 @@ public final class LatinIME extends InputMethodService implements KeyboardAction Stats.onAutoCorrection("", mWordComposer.getTypedWord(), " ", mWordComposer); } } - if (mWordComposer.size() <= 1) { + final int wordComposerSize = mWordComposer.size(); + // Since isComposingWord() is true, the size is at least 1. + final int lastChar = mWordComposer.getCodeAt(wordComposerSize - 1); + if (wordComposerSize <= 1) { // We auto-correct the previous (typed, not gestured) string iff it's one character // long. The reason for this is, even in the middle of gesture typing, you'll still // tap one-letter words and you want them auto-corrected (typically, "i" in English @@ -1498,8 +1501,14 @@ public final class LatinIME extends InputMethodService implements KeyboardAction } mExpectingUpdateSelection = true; // The following is necessary for the case where the user typed something but didn't - // manual pick it and didn't input any separator. - mSpaceState = SPACE_STATE_PHANTOM; + // manual pick it and didn't input any separator: we want to put a space between what + // has been entered and the coming gesture input result, so we go into phantom space + // state, which will be promoted to a space when the gesture result is committed. But if + // the current input ends in a word connector on the other hand, then we want to have + // the next input stick to the current input so we don't switch to phantom space state. + if (!mSettings.getCurrent().isWordConnector(lastChar)) { + mSpaceState = SPACE_STATE_PHANTOM; + } } else { final int codePointBeforeCursor = mConnection.getCodePointBeforeCursor(); if (mSettings.getCurrent().isUsuallyFollowedBySpace(codePointBeforeCursor)) { |