Fix a race condition.

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

Bug: 12390573
Change-Id: I6f04f07a46babbc3d51cb94c7eaee21bed242396
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index b365003..c867ab3 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -1113,8 +1113,11 @@
                 keyboardSwitcher.getKeyboard());
         mWordComposer.setCursorPositionWithinWord(
                 typedWord.codePointCount(0, numberOfCharsInWordBeforeCursor));
-        mConnection.setComposingRegion(expectedCursorPosition - numberOfCharsInWordBeforeCursor,
-                expectedCursorPosition + range.getNumberOfCharsInWordAfterCursor());
+        // TODO: Change these two lines to setComposingRegion(cursorPosition,
+        //         cursorPosition + range.getNumberOfCharsInWordAfterCursor());
+        mConnection.deleteSurroundingText(numberOfCharsInWordBeforeCursor,
+              typedWord.length() - numberOfCharsInWordBeforeCursor);
+        mConnection.setComposingText(typedWord, 1);
         if (suggestions.isEmpty()) {
             // We come here if there weren't any suggestion spans on this word. We will try to
             // compute suggestions for it instead.