diff options
Diffstat (limited to 'services/java/com/android/server/InputMethodManagerService.java')
-rw-r--r-- | services/java/com/android/server/InputMethodManagerService.java | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/services/java/com/android/server/InputMethodManagerService.java b/services/java/com/android/server/InputMethodManagerService.java index 6ba5cffcaa66..01f75449c430 100644 --- a/services/java/com/android/server/InputMethodManagerService.java +++ b/services/java/com/android/server/InputMethodManagerService.java @@ -1243,6 +1243,10 @@ public class InputMethodManagerService extends IInputMethodManager.Stub unbindCurrentMethodLocked(false, false); return; } + // Remove commands relating to the previous service. Otherwise WindowManagerService + // will reject the command because the token attached to these messages is invalid. + mCaller.removeMessages(MSG_SHOW_SOFT_INPUT); + mCaller.removeMessages(MSG_HIDE_SOFT_INPUT); if (DEBUG) Slog.v(TAG, "Initiating attach with token: " + mCurToken); executeOrSendMessage(mCurMethod, mCaller.obtainMessageOO( MSG_ATTACH_TOKEN, mCurMethod, mCurToken)); |