Fix a bug with single quotes

I14dd3815 special-cased single quotes at the start of a word, but
did not do so correctly - it would kill a composing word if entered
just after some punctuations.
The right test was not isCursorTouchingWord() but
mHasUncommittedTypedChars, which actually makes for a simpler
implementation.

Bug: 5648032
Change-Id: Icd21d213e0cad6da68cacfeb921502cd8dcfac95
main
Jean Chalard 2011-11-22 18:29:51 +09:00
parent f3afe5ed0a
commit 6d1cbbc2ff
1 changed files with 3 additions and 4 deletions

View File

@ -1539,16 +1539,15 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
if ((isAlphabet(code) || mSettingsValues.isSymbolExcludedFromWordSeparators(code))
&& isSuggestionsRequested() && !isCursorTouchingWord()) {
if (!mHasUncommittedTypedChars) {
mHasUncommittedTypedChars = true;
// Reset entirely the composing state anyway, then start composing a new word unless
// the character is a single quote.
mHasUncommittedTypedChars = (Keyboard.CODE_SINGLE_QUOTE != code);
mComposingStringBuilder.setLength(0);
mWordComposer.reset();
clearSuggestions();
mComposingStateManager.onFinishComposingText();
}
}
if (code == Keyboard.CODE_SINGLE_QUOTE && !isCursorTouchingWord()) {
mHasUncommittedTypedChars = false;
}
final KeyboardSwitcher switcher = mKeyboardSwitcher;
if (switcher.isShiftedOrShiftLocked()) {
if (keyCodes == null || keyCodes[0] < Character.MIN_CODE_POINT