diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java index 0aaf9c7928f78..4886e6e14c17c 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -5560,10 +5560,12 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub @Override public void onImeParentChanged() { synchronized (ImfLock.class) { - // Hide the IME method menu when the IME surface parent will change in - // case seeing the dialog dismiss flickering during the next focused window - // starting the input connection. - mMenuController.hideInputMethodMenu(); + // Hide the IME method menu only when the IME surface parent is changed by the + // input target changed, in case seeing the dialog dismiss flickering during + // the next focused window starting the input connection. + if (mLastImeTargetWindow != mCurFocusedWindow) { + mMenuController.hideInputMethodMenu(); + } } }