aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java25
1 files changed, 17 insertions, 8 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index fb9c47db2..4328b823d 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -699,7 +699,9 @@ public class LatinIME extends InputMethodService
mLastSelectionEnd = et.startOffset + et.selectionEnd;
// Then look for possible corrections in a delayed fashion
- if (!TextUtils.isEmpty(et.text)) postUpdateOldSuggestions();
+ if (!TextUtils.isEmpty(et.text) && isCursorTouchingWord()) {
+ postUpdateOldSuggestions();
+ }
}
}
@@ -805,6 +807,10 @@ public class LatinIME extends InputMethodService
postUpdateOldSuggestions();
} else {
abortCorrection(false);
+ // Show the punctuation suggestions list if the current one is not
+ if (!mSuggestPuncList.equals(mCandidateView.getSuggestions())) {
+ setNextSuggestions();
+ }
}
}
}
@@ -1315,7 +1321,7 @@ public class LatinIME extends InputMethodService
} else if (deleteChar) {
if (mCandidateView != null && mCandidateView.dismissAddToDictionaryHint()) {
// Go back to the suggestion mode if the user canceled the
- // "Tap again to save".
+ // "Touch again to save".
// NOTE: In gerenal, we don't revert the word when backspacing
// from a manual suggestion pick. We deliberately chose a
// different behavior only in the case of picking the first
@@ -1444,7 +1450,7 @@ public class LatinIME extends InputMethodService
mVoiceInput.incrementTextModificationInsertPunctuationCount(1);
}
- // Should dismiss the "Tap again to save" message when handling separator
+ // Should dismiss the "Touch again to save" message when handling separator
if (mCandidateView != null && mCandidateView.dismissAddToDictionaryHint()) {
postUpdateSuggestions();
}
@@ -1887,7 +1893,8 @@ public class LatinIME extends InputMethodService
// So, LatinImeLogger logs "" as a user's input.
LatinImeLogger.logOnManualSuggestion(
"", suggestion.toString(), index, suggestions);
- onKey(suggestion.charAt(0), null, LatinKeyboardBaseView.NOT_A_TOUCH_COORDINATE,
+ final char primaryCode = suggestion.charAt(0);
+ onKey(primaryCode, new int[]{primaryCode}, LatinKeyboardBaseView.NOT_A_TOUCH_COORDINATE,
LatinKeyboardBaseView.NOT_A_TOUCH_COORDINATE);
if (ic != null) {
ic.endBatchEdit();
@@ -1922,7 +1929,7 @@ public class LatinIME extends InputMethodService
TextEntryState.typedCharacter((char) KEYCODE_SPACE, true);
setNextSuggestions();
} else if (!showingAddToDictionaryHint) {
- // If we're not showing the "Tap again to save hint", then show corrections again.
+ // If we're not showing the "Touch again to save hint", then show corrections again.
// In case the cursor position doesn't change, make sure we show the suggestions again.
clearSuggestions();
postUpdateOldSuggestions();
@@ -2094,7 +2101,7 @@ public class LatinIME extends InputMethodService
ic.endBatchEdit();
} else {
abortCorrection(true);
- setNextSuggestions();
+ setNextSuggestions(); // Show the punctuation suggestions list
}
} else {
abortCorrection(true);
@@ -2150,11 +2157,13 @@ public class LatinIME extends InputMethodService
CharSequence toLeft = ic.getTextBeforeCursor(1, 0);
CharSequence toRight = ic.getTextAfterCursor(1, 0);
if (!TextUtils.isEmpty(toLeft)
- && !isWordSeparator(toLeft.charAt(0))) {
+ && !isWordSeparator(toLeft.charAt(0))
+ && !isSuggestedPunctuation(toLeft.charAt(0))) {
return true;
}
if (!TextUtils.isEmpty(toRight)
- && !isWordSeparator(toRight.charAt(0))) {
+ && !isWordSeparator(toRight.charAt(0))
+ && !isSuggestedPunctuation(toRight.charAt(0))) {
return true;
}
return false;