commit
024ee9ff02
|
@ -1386,13 +1386,20 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
|
|||
|
||||
private void handleBackspace(final int spaceState) {
|
||||
if (mVoiceProxy.logAndRevertVoiceInput()) return;
|
||||
|
||||
final InputConnection ic = getCurrentInputConnection();
|
||||
if (ic == null) return;
|
||||
ic.beginBatchEdit();
|
||||
handleBackspaceWhileInBatchEdit(spaceState, ic);
|
||||
ic.endBatchEdit();
|
||||
}
|
||||
|
||||
// "ic" may not be null.
|
||||
private void handleBackspaceWhileInBatchEdit(final int spaceState, final InputConnection ic) {
|
||||
mVoiceProxy.handleBackspace();
|
||||
|
||||
// In many cases, we may have to put the keyboard in auto-shift state again.
|
||||
mHandler.postUpdateShiftKeyState();
|
||||
|
||||
if (mEnteredText != null && sameAsTextBeforeCursor(ic, mEnteredText)) {
|
||||
// Cancel multi-character input: remove the text we just entered.
|
||||
// This is triggered on backspace after a key that inputs multiple characters,
|
||||
|
@ -1401,7 +1408,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
|
|||
// If we have mEnteredText, then we know that mHasUncommittedTypedChars == false.
|
||||
// In addition we know that spaceState is false, and that we should not be
|
||||
// reverting any autocorrect at this point. So we can safely return.
|
||||
ic.endBatchEdit();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1430,21 +1436,15 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
|
|||
} else {
|
||||
ic.deleteSurroundingText(1, 0);
|
||||
}
|
||||
// If we deleted the last remaining char of a word, we may have to put the keyboard
|
||||
// in auto-shift state again.
|
||||
mHandler.postUpdateShiftKeyState();
|
||||
// If we had uncommitted chars then we know it's not time to revert any auto-correct
|
||||
// and that spaceState is NONE.
|
||||
ic.endBatchEdit();
|
||||
return;
|
||||
}
|
||||
mHandler.postUpdateShiftKeyState();
|
||||
|
||||
if (null != mWordSavedForAutoCorrectCancellation) {
|
||||
Utils.Stats.onAutoCorrectionCancellation();
|
||||
cancelAutoCorrect(ic);
|
||||
mWordSavedForAutoCorrectCancellation = null;
|
||||
ic.endBatchEdit();
|
||||
return;
|
||||
} else {
|
||||
mWordSavedForAutoCorrectCancellation = null;
|
||||
|
@ -1452,14 +1452,12 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
|
|||
|
||||
if (SPACE_STATE_DOUBLE == spaceState) {
|
||||
if (revertDoubleSpace(ic)) {
|
||||
ic.endBatchEdit();
|
||||
// No need to reset mSpaceState, it has already be done (that's why we
|
||||
// receive it as a parameter)
|
||||
return;
|
||||
}
|
||||
} else if (SPACE_STATE_SWAP_PUNCTUATION == spaceState) {
|
||||
if (revertSwapPunctuation(ic)) {
|
||||
ic.endBatchEdit();
|
||||
// Likewise
|
||||
return;
|
||||
}
|
||||
|
@ -1483,7 +1481,6 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
|
|||
restartSuggestionsOnWordBeforeCursorIfAtEndOfWord(ic);
|
||||
}
|
||||
}
|
||||
ic.endBatchEdit();
|
||||
}
|
||||
|
||||
private void handleTab() {
|
||||
|
|
Loading…
Reference in New Issue