Loading services/core/java/com/android/server/wm/WindowState.java +3 −1 Original line number Diff line number Diff line Loading @@ -5330,7 +5330,9 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP // this promotion. final WindowState imeTarget = getDisplayContent().mInputMethodTarget; boolean inTokenWithAndAboveImeTarget = imeTarget != null && imeTarget != this && imeTarget.mToken == mToken && imeTarget.compareTo(this) <= 0; && imeTarget.mToken == mToken && getParent() != null && imeTarget.compareTo(this) <= 0; return inTokenWithAndAboveImeTarget; } return false; Loading services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java +12 −0 Original line number Diff line number Diff line Loading @@ -657,4 +657,16 @@ public class WindowStateTests extends WindowTestsBase { win0.mActivityRecord.getStack().setFocusable(false); assertTrue(win0.cantReceiveTouchInput()); } @Test public void testNeedsRelativeLayeringToIme_notAttached() { WindowState sameTokenWindow = createWindow(null, TYPE_BASE_APPLICATION, mAppWindow.mToken, "SameTokenWindow"); mDisplayContent.mInputMethodTarget = mAppWindow; sameTokenWindow.mActivityRecord.getStack().setWindowingMode( WINDOWING_MODE_SPLIT_SCREEN_PRIMARY); assertTrue(sameTokenWindow.needsRelativeLayeringToIme()); sameTokenWindow.removeImmediately(); assertFalse(sameTokenWindow.needsRelativeLayeringToIme()); } } Loading
services/core/java/com/android/server/wm/WindowState.java +3 −1 Original line number Diff line number Diff line Loading @@ -5330,7 +5330,9 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP // this promotion. final WindowState imeTarget = getDisplayContent().mInputMethodTarget; boolean inTokenWithAndAboveImeTarget = imeTarget != null && imeTarget != this && imeTarget.mToken == mToken && imeTarget.compareTo(this) <= 0; && imeTarget.mToken == mToken && getParent() != null && imeTarget.compareTo(this) <= 0; return inTokenWithAndAboveImeTarget; } return false; Loading
services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java +12 −0 Original line number Diff line number Diff line Loading @@ -657,4 +657,16 @@ public class WindowStateTests extends WindowTestsBase { win0.mActivityRecord.getStack().setFocusable(false); assertTrue(win0.cantReceiveTouchInput()); } @Test public void testNeedsRelativeLayeringToIme_notAttached() { WindowState sameTokenWindow = createWindow(null, TYPE_BASE_APPLICATION, mAppWindow.mToken, "SameTokenWindow"); mDisplayContent.mInputMethodTarget = mAppWindow; sameTokenWindow.mActivityRecord.getStack().setWindowingMode( WINDOWING_MODE_SPLIT_SCREEN_PRIMARY); assertTrue(sameTokenWindow.needsRelativeLayeringToIme()); sameTokenWindow.removeImmediately(); assertFalse(sameTokenWindow.needsRelativeLayeringToIme()); } }