diff options
author | 2013-06-23 23:11:36 -0700 | |
---|---|---|
committer | 2013-06-23 23:11:36 -0700 | |
commit | 4023340775c3e100226e2b90f6fa0f643a99a0b1 (patch) | |
tree | a69741ce35cdb4700984e3dcab949599eadee5db /java/src/com/android/inputmethod/latin/LatinIME.java | |
parent | f8d3d69974ec18c6263932032e9fc3f1d8ff6c4c (diff) | |
parent | c074c3357c3bb0dfe92fff90bccbcab2b6ec422e (diff) | |
download | latinime-4023340775c3e100226e2b90f6fa0f643a99a0b1.tar.gz latinime-4023340775c3e100226e2b90f6fa0f643a99a0b1.tar.xz latinime-4023340775c3e100226e2b90f6fa0f643a99a0b1.zip |
am c074c335: Merge "Refactor text range to be able to get spans larger than the word"
* commit 'c074c3357c3bb0dfe92fff90bccbcab2b6ec422e':
Refactor text range to be able to get spans larger than the word
Diffstat (limited to 'java/src/com/android/inputmethod/latin/LatinIME.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 52a9b9a6c..57eaa3836 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -2495,11 +2495,13 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen if (null == range) return; // Happens if we don't have an input connection at all // If for some strange reason (editor bug or so) we measure the text before the cursor as // longer than what the entire text is supposed to be, the safe thing to do is bail out. - if (range.mCharsBefore > mLastSelectionStart) return; + final int numberOfCharsInWordBeforeCursor = range.getNumberOfCharsInWordBeforeCursor(); + if (numberOfCharsInWordBeforeCursor > mLastSelectionStart) return; final ArrayList<SuggestedWordInfo> suggestions = CollectionUtils.newArrayList(); - final String typedWord = range.mWord.toString(); - if (range.mWord instanceof SpannableString) { - final SpannableString spannableString = (SpannableString)range.mWord; + final CharSequence word = range.mWord; + final String typedWord = word.toString(); + if (word instanceof SpannableString) { + final SpannableString spannableString = (SpannableString)word; int i = 0; for (Object object : spannableString.getSpans(0, spannableString.length(), SuggestionSpan.class)) { @@ -2515,9 +2517,10 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen } } mWordComposer.setComposingWord(typedWord, mKeyboardSwitcher.getKeyboard()); - mWordComposer.setCursorPositionWithinWord(range.mCharsBefore); - mConnection.setComposingRegion(mLastSelectionStart - range.mCharsBefore, - mLastSelectionEnd + range.mCharsAfter); + mWordComposer.setCursorPositionWithinWord(numberOfCharsInWordBeforeCursor); + mConnection.setComposingRegion( + mLastSelectionStart - numberOfCharsInWordBeforeCursor, + mLastSelectionEnd + range.getNumberOfCharsInWordAfterCursor()); final SuggestedWords suggestedWords; if (suggestions.isEmpty()) { // We come here if there weren't any suggestion spans on this word. We will try to |