Fix a bug where moving the cursor would not reset selection

This change updates suggestions when the cursor is moved.
It is now reasonable to remove the explicit test for
TextEntryState.isAcceptedDefault because it is now shielded
by mExpectingUpdateSelection : actually, this probably fixes
a long-standing bug.

Bug: 5337309
Change-Id: Iee4046420c6a88d1a07d428230f93c3ebef25c39
This commit is contained in:
Jean Chalard 2011-10-03 15:50:11 +09:00
parent 397f6f8299
commit cd95a36558

View File

@ -895,20 +895,16 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
}
mComposingStringBuilder.setLength(0);
mHasUncommittedTypedChars = false;
if (isCursorTouchingWord()) {
mHandler.cancelUpdateBigramPredictions();
mHandler.postUpdateSuggestions();
} else {
setPunctuationSuggestions();
}
TextEntryState.reset();
updateSuggestions();
final InputConnection ic = getCurrentInputConnection();
if (ic != null) {
ic.finishComposingText();
}
mVoiceProxy.setVoiceInputHighlighted(false);
} else if (!mHasUncommittedTypedChars && TextEntryState.isAcceptedDefault()) {
} else if (!mHasUncommittedTypedChars) {
TextEntryState.reset();
updateSuggestions();
}
mJustAddedMagicSpace = false; // The user moved the cursor.
mJustReplacedDoubleSpace = false;
@ -1654,6 +1650,10 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
return;
}
mHandler.cancelUpdateSuggestions();
mHandler.cancelUpdateOldSuggestions();
mHandler.cancelUpdateBigramPredictions();
if (!mHasUncommittedTypedChars) {
setPunctuationSuggestions();
return;