Don't set relative z of window to IME if starting window

If a window is a starting window, it shouldn't get relative z to IME
since we don't want to change its z order.

Test: Split screen with pip and opening new app in split
Test: WindowStateTests#testNeedsRelativeLayeringToIme_startingWindow
Fixes: 158762203
Change-Id: I0be39285a96bc6458e077b772d0315be6075e0b0
This commit is contained in:
chaviw
2020-06-12 17:39:41 -07:00
parent 3917b729a6
commit ce12f8517e
2 changed files with 11 additions and 0 deletions

View File

@@ -5390,6 +5390,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
final WindowState imeTarget = getDisplayContent().mInputMethodTarget;
boolean inTokenWithAndAboveImeTarget = imeTarget != null && imeTarget != this
&& imeTarget.mToken == mToken
&& mAttrs.type != TYPE_APPLICATION_STARTING
&& getParent() != null
&& imeTarget.compareTo(this) <= 0;
return inTokenWithAndAboveImeTarget;

View File

@@ -692,4 +692,14 @@ public class WindowStateTests extends WindowTestsBase {
sameTokenWindow.removeImmediately();
assertFalse(sameTokenWindow.needsRelativeLayeringToIme());
}
@Test
public void testNeedsRelativeLayeringToIme_startingWindow() {
WindowState sameTokenWindow = createWindow(null, TYPE_APPLICATION_STARTING,
mAppWindow.mToken, "SameTokenWindow");
mDisplayContent.mInputMethodTarget = mAppWindow;
sameTokenWindow.mActivityRecord.getStack().setWindowingMode(
WINDOWING_MODE_SPLIT_SCREEN_PRIMARY);
assertFalse(sameTokenWindow.needsRelativeLayeringToIme());
}
}