Fix a race condition.

Don't use absolute cursor positions, this leads to race
conditions.

Bug: 12390573
Change-Id: I6f04f07a46babbc3d51cb94c7eaee21bed242396
This commit is contained in:
Jean Chalard 2014-01-07 15:12:16 +09:00
parent 6d5f9fd3d1
commit 42e83c7f06

View file

@ -1113,8 +1113,11 @@ public final class InputLogic {
keyboardSwitcher.getKeyboard()); keyboardSwitcher.getKeyboard());
mWordComposer.setCursorPositionWithinWord( mWordComposer.setCursorPositionWithinWord(
typedWord.codePointCount(0, numberOfCharsInWordBeforeCursor)); typedWord.codePointCount(0, numberOfCharsInWordBeforeCursor));
mConnection.setComposingRegion(expectedCursorPosition - numberOfCharsInWordBeforeCursor, // TODO: Change these two lines to setComposingRegion(cursorPosition,
expectedCursorPosition + range.getNumberOfCharsInWordAfterCursor()); // cursorPosition + range.getNumberOfCharsInWordAfterCursor());
mConnection.deleteSurroundingText(numberOfCharsInWordBeforeCursor,
typedWord.length() - numberOfCharsInWordBeforeCursor);
mConnection.setComposingText(typedWord, 1);
if (suggestions.isEmpty()) { if (suggestions.isEmpty()) {
// We come here if there weren't any suggestion spans on this word. We will try to // We come here if there weren't any suggestion spans on this word. We will try to
// compute suggestions for it instead. // compute suggestions for it instead.