Loading services/core/java/com/android/server/wm/DisplayContent.java +8 −8 Original line number Diff line number Diff line Loading @@ -733,16 +733,16 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp // dismissing during the task switching to keep the window focus because IME window has // higher window hierarchy, we don't give it focus if the next IME layering target // doesn't request IME visible. if (w.mIsImWindow && (mImeLayeringTarget == null if (w.mIsImWindow && w.isChildWindow() && (mImeLayeringTarget == null || !mImeLayeringTarget.getRequestedVisibility(ITYPE_IME))) { if (w.mAttrs.type == TYPE_INPUT_METHOD_DIALOG) { return false; } if (w.isChildWindow()) { if (w.mAttrs.type == TYPE_INPUT_METHOD_DIALOG && mImeLayeringTarget != null && !mImeLayeringTarget.getRequestedVisibility(ITYPE_IME) && mImeLayeringTarget.isAnimating(PARENTS | TRANSITION, ANIMATION_TYPE_APP_TRANSITION)) { return false; } } final ActivityRecord activity = w.mActivityRecord; Loading services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +3 −0 Original line number Diff line number Diff line Loading @@ -2223,6 +2223,9 @@ public class DisplayContentTests extends WindowTestsBase { // request IME visible. final WindowState nextImeAppTarget = createWindow(null, TYPE_BASE_APPLICATION, mDisplayContent, "nextImeAppTarget"); spyOn(nextImeAppTarget); doReturn(true).when(nextImeAppTarget).isAnimating(PARENTS | TRANSITION, ANIMATION_TYPE_APP_TRANSITION); mDisplayContent.setImeLayeringTarget(nextImeAppTarget); assertNotEquals(imeMenuDialog, mDisplayContent.findFocusedWindow()); } Loading Loading
services/core/java/com/android/server/wm/DisplayContent.java +8 −8 Original line number Diff line number Diff line Loading @@ -733,16 +733,16 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp // dismissing during the task switching to keep the window focus because IME window has // higher window hierarchy, we don't give it focus if the next IME layering target // doesn't request IME visible. if (w.mIsImWindow && (mImeLayeringTarget == null if (w.mIsImWindow && w.isChildWindow() && (mImeLayeringTarget == null || !mImeLayeringTarget.getRequestedVisibility(ITYPE_IME))) { if (w.mAttrs.type == TYPE_INPUT_METHOD_DIALOG) { return false; } if (w.isChildWindow()) { if (w.mAttrs.type == TYPE_INPUT_METHOD_DIALOG && mImeLayeringTarget != null && !mImeLayeringTarget.getRequestedVisibility(ITYPE_IME) && mImeLayeringTarget.isAnimating(PARENTS | TRANSITION, ANIMATION_TYPE_APP_TRANSITION)) { return false; } } final ActivityRecord activity = w.mActivityRecord; Loading
services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +3 −0 Original line number Diff line number Diff line Loading @@ -2223,6 +2223,9 @@ public class DisplayContentTests extends WindowTestsBase { // request IME visible. final WindowState nextImeAppTarget = createWindow(null, TYPE_BASE_APPLICATION, mDisplayContent, "nextImeAppTarget"); spyOn(nextImeAppTarget); doReturn(true).when(nextImeAppTarget).isAnimating(PARENTS | TRANSITION, ANIMATION_TYPE_APP_TRANSITION); mDisplayContent.setImeLayeringTarget(nextImeAppTarget); assertNotEquals(imeMenuDialog, mDisplayContent.findFocusedWindow()); } Loading