Merge "Fix a bug with backspace happening after a manual pick."
This commit is contained in:
commit
250cf0a781
1 changed files with 11 additions and 6 deletions
|
@ -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();
|
||||||
|
|
Loading…
Reference in a new issue