Fix a bug with no suggestions flag
We should reset the composition state when moving the cursor inside the word after a gesture when the text field specifies no suggestions. Bug: 17959921 Change-Id: I977fea775f7b7e145e343636f0fb94266a40953amain
parent
ae3ad8ebdd
commit
ecea8551c3
|
@ -1033,7 +1033,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
||||||
// with cursor movement when we have a hardware keyboard since we are not in charge.
|
// with cursor movement when we have a hardware keyboard since we are not in charge.
|
||||||
final SettingsValues settingsValues = mSettings.getCurrent();
|
final SettingsValues settingsValues = mSettings.getCurrent();
|
||||||
if ((!settingsValues.mHasHardwareKeyboard || ProductionFlags.IS_HARDWARE_KEYBOARD_SUPPORTED)
|
if ((!settingsValues.mHasHardwareKeyboard || ProductionFlags.IS_HARDWARE_KEYBOARD_SUPPORTED)
|
||||||
&& mInputLogic.onUpdateSelection(oldSelStart, oldSelEnd, newSelStart, newSelEnd)) {
|
&& mInputLogic.onUpdateSelection(oldSelStart, oldSelEnd, newSelStart, newSelEnd,
|
||||||
|
settingsValues)) {
|
||||||
mKeyboardSwitcher.requestUpdatingShiftState(getCurrentAutoCapsState(),
|
mKeyboardSwitcher.requestUpdatingShiftState(getCurrentAutoCapsState(),
|
||||||
getCurrentRecapitalizeState());
|
getCurrentRecapitalizeState());
|
||||||
}
|
}
|
||||||
|
|
|
@ -358,10 +358,11 @@ public final class InputLogic {
|
||||||
* @param oldSelEnd old selection end
|
* @param oldSelEnd old selection end
|
||||||
* @param newSelStart new selection start
|
* @param newSelStart new selection start
|
||||||
* @param newSelEnd new selection end
|
* @param newSelEnd new selection end
|
||||||
|
* @param settingsValues the current values of the settings.
|
||||||
* @return whether the cursor has moved as a result of user interaction.
|
* @return whether the cursor has moved as a result of user interaction.
|
||||||
*/
|
*/
|
||||||
public boolean onUpdateSelection(final int oldSelStart, final int oldSelEnd,
|
public boolean onUpdateSelection(final int oldSelStart, final int oldSelEnd,
|
||||||
final int newSelStart, final int newSelEnd) {
|
final int newSelStart, final int newSelEnd, final SettingsValues settingsValues) {
|
||||||
if (mConnection.isBelatedExpectedUpdate(oldSelStart, newSelStart, oldSelEnd, newSelEnd)) {
|
if (mConnection.isBelatedExpectedUpdate(oldSelStart, newSelStart, oldSelEnd, newSelEnd)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -386,8 +387,9 @@ public final class InputLogic {
|
||||||
// should be true, but that is if the framework had taken that wrong cursor position
|
// should be true, but that is if the framework had taken that wrong cursor position
|
||||||
// into account, which means we have to reset the entire composing state whenever there
|
// into account, which means we have to reset the entire composing state whenever there
|
||||||
// is or was a selection regardless of whether it changed or not.
|
// is or was a selection regardless of whether it changed or not.
|
||||||
if (hasOrHadSelection || (selectionChangedOrSafeToReset
|
if (hasOrHadSelection || !settingsValues.needsToLookupSuggestions()
|
||||||
&& !mWordComposer.moveCursorByAndReturnIfInsideComposingWord(moveAmount))) {
|
|| (selectionChangedOrSafeToReset
|
||||||
|
&& !mWordComposer.moveCursorByAndReturnIfInsideComposingWord(moveAmount))) {
|
||||||
// If we are composing a word and moving the cursor, we would want to set a
|
// If we are composing a word and moving the cursor, we would want to set a
|
||||||
// suggestion span for recorrection to work correctly. Unfortunately, that
|
// suggestion span for recorrection to work correctly. Unfortunately, that
|
||||||
// would involve the keyboard committing some new text, which would move the
|
// would involve the keyboard committing some new text, which would move the
|
||||||
|
|
Loading…
Reference in New Issue