am 250cf0a7: Merge "Fix a bug with backspace happening after a manual pick."

* commit '250cf0a781258afbfe45b8a7ad411aed08b3e873':
  Fix a bug with backspace happening after a manual pick.
main
Jean Chalard 2012-01-19 01:57:08 -08:00 committed by Android Git Automerger
commit db6c706ae5
1 changed files with 11 additions and 6 deletions

View File

@ -2154,6 +2154,16 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
// "ic" must not be null // "ic" must not be null
private void restartSuggestionsOnManuallyPickedTypedWord(final InputConnection ic) { private void restartSuggestionsOnManuallyPickedTypedWord(final InputConnection ic) {
// Note: this relies on the last word still being held in the WordComposer, in
// the field for suggestion resuming.
// Note: in the interest of code simplicity, we may want to just call
// restartSuggestionsOnWordBeforeCursorIfAtEndOfWord instead, but retrieving
// the old WordComposer allows to reuse the actual typed coordinates.
mWordComposer.resumeSuggestionOnKeptWord();
// We resume suggestion, and then we want to set the composing text to the content
// of the word composer again. But since we just manually picked a word, there is
// no composing text at the moment, so we have to delete the word before we set a
// new composing text.
final int restartLength = mWordComposer.size(); final int restartLength = mWordComposer.size();
if (DEBUG) { if (DEBUG) {
final String wordBeforeCursor = final String wordBeforeCursor =
@ -2167,13 +2177,8 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
+ wordBeforeCursor + "\""); + wordBeforeCursor + "\"");
} }
} }
// Warning: this +1 takes into account the extra space added by the manual pick process.
ic.deleteSurroundingText(restartLength + 1, 0); ic.deleteSurroundingText(restartLength + 1, 0);
// Note: this relies on the last word still being held in the WordComposer
// Note: in the interest of code simplicity, we may want to just call
// restartSuggestionsOnWordBeforeCursorIfAtEndOfWord instead, but retrieving
// the old WordComposer allows to reuse the actual typed coordinates.
mWordComposer.resumeSuggestionOnKeptWord();
ic.setComposingText(mWordComposer.getTypedWord(), 1); ic.setComposingText(mWordComposer.getTypedWord(), 1);
mHandler.cancelUpdateBigramPredictions(); mHandler.cancelUpdateBigramPredictions();
mHandler.postUpdateSuggestions(); mHandler.postUpdateSuggestions();