From 06a591cdd6d90600db006906d5d1524d156d6529 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Thu, 16 Feb 2012 10:25:26 -0800 Subject: Fix last change -- don't call startInputInner() with lock held. Change-Id: Ie7a145c5a07f08ae8a3f5954a1c389bfbd946b69 --- core/java/android/view/inputmethod/InputMethodManager.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java index 4e85425..925e781 100644 --- a/core/java/android/view/inputmethod/InputMethodManager.java +++ b/core/java/android/view/inputmethod/InputMethodManager.java @@ -336,6 +336,7 @@ public final class InputMethodManager { } case MSG_UNBIND: { final int sequence = msg.arg1; + boolean startInput = false; synchronized (mH) { if (mBindSequence == sequence) { if (false) { @@ -356,10 +357,13 @@ public final class InputMethodManager { mServedConnecting = true; } if (mActive) { - startInputInner(); + startInput = true; } } } + if (startInput) { + startInputInner(); + } return; } case MSG_SET_ACTIVE: { @@ -1209,12 +1213,13 @@ public final class InputMethodManager { mService.windowGainedFocus(mClient, rootView.getWindowToken(), focusedView != null, isTextEditor, softInputMode, first, windowFlags); - if (startInput) { - startInputInner(); - } } catch (RemoteException e) { } } + + if (startInput) { + startInputInner(); + } } /** @hide */ -- cgit v1.1