From d0725a68421203ae42d78ceed57767a5204e858e Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Wed, 14 Nov 2012 17:37:55 +0900 Subject: [PATCH] Update shift state only when input field is restarted Bug: 7482766 Change-Id: Ifdfa110c44b95acfbcd3e0aa34f675c70b7d7285 --- .../com/android/inputmethod/latin/LatinIME.java | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index f578cc8de..1436a10ac 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -683,8 +683,6 @@ public final class LatinIME extends InputMethodService implements KeyboardAction accessUtils.onStartInputViewInternal(mainKeyboardView, editorInfo, restarting); } - final boolean selectionChanged = mLastSelectionStart != editorInfo.initialSelStart - || mLastSelectionEnd != editorInfo.initialSelEnd; final boolean inputTypeChanged = !mCurrentSettings.isSameInputType(editorInfo); final boolean isDifferentTextField = !restarting || inputTypeChanged; if (isDifferentTextField) { @@ -732,20 +730,17 @@ public final class LatinIME extends InputMethodService implements KeyboardAction // TODO: Come up with a more comprehensive way to reset the keyboard layout when // a keyboard layout set doesn't get reloaded in this method. switcher.resetKeyboardStateToAlphabet(); + // In apps like Talk, we come here when the text is sent and the field gets emptied and + // we need to re-evaluate the shift state, but not the whole layout which would be + // disruptive. + // Space state must be updated before calling updateShiftState + switcher.updateShiftState(); } setSuggestionStripShownInternal( isSuggestionsStripVisible(), /* needsInputViewShown */ false); mLastSelectionStart = editorInfo.initialSelStart; mLastSelectionEnd = editorInfo.initialSelEnd; - // If we come here something in the text state is very likely to have changed. - // We should update the shift state regardless of whether we are restarting or not, because - // this is not perceived as a layout change that may be disruptive like we may have with - // switcher.loadKeyboard; in apps like Talk, we come here when the text is sent and the - // field gets emptied and we need to re-evaluate the shift state, but not the whole layout - // which would be disruptive. - // Space state must be updated before calling updateShiftState - mKeyboardSwitcher.updateShiftState(); mHandler.cancelUpdateSuggestionStrip(); mHandler.cancelDoubleSpacesTimer();