Loading services/core/java/com/android/server/wm/WindowState.java +4 −2 Original line number Diff line number Diff line Loading @@ -2547,7 +2547,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP if (DEBUG_INPUT_METHOD) { Slog.i(TAG_WM, "isVisibleRequestedOrAdding " + this + ": " + isVisibleRequestedOrAdding()); + isVisibleRequestedOrAdding() + " isVisible: " + (isVisible() && mActivityRecord != null && mActivityRecord.isVisible())); if (!isVisibleRequestedOrAdding()) { Slog.i(TAG_WM, " mSurfaceController=" + mWinAnimator.mSurfaceController + " relayoutCalled=" + mRelayoutCalled Loading @@ -2562,7 +2563,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP } } } return isVisibleRequestedOrAdding(); return isVisibleRequestedOrAdding() || (isVisible() && mActivityRecord != null && mActivityRecord.isVisible()); } private final class DeadWindowEventReceiver extends InputEventReceiver { Loading services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java +5 −0 Original line number Diff line number Diff line Loading @@ -252,6 +252,11 @@ public class WindowStateTests extends WindowTestsBase { assertFalse(appWindow.canBeImeTarget()); appWindow.mActivityRecord.setWindowingMode(initialMode); // Verify that app window can still be IME target as long as it is visible (even if // it is going to become invisible). appWindow.mActivityRecord.mVisibleRequested = false; assertTrue(appWindow.canBeImeTarget()); // Make windows invisible appWindow.hide(false /* doAnimation */, false /* requestAnim */); imeWindow.hide(false /* doAnimation */, false /* requestAnim */); Loading Loading
services/core/java/com/android/server/wm/WindowState.java +4 −2 Original line number Diff line number Diff line Loading @@ -2547,7 +2547,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP if (DEBUG_INPUT_METHOD) { Slog.i(TAG_WM, "isVisibleRequestedOrAdding " + this + ": " + isVisibleRequestedOrAdding()); + isVisibleRequestedOrAdding() + " isVisible: " + (isVisible() && mActivityRecord != null && mActivityRecord.isVisible())); if (!isVisibleRequestedOrAdding()) { Slog.i(TAG_WM, " mSurfaceController=" + mWinAnimator.mSurfaceController + " relayoutCalled=" + mRelayoutCalled Loading @@ -2562,7 +2563,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP } } } return isVisibleRequestedOrAdding(); return isVisibleRequestedOrAdding() || (isVisible() && mActivityRecord != null && mActivityRecord.isVisible()); } private final class DeadWindowEventReceiver extends InputEventReceiver { Loading
services/tests/wmtests/src/com/android/server/wm/WindowStateTests.java +5 −0 Original line number Diff line number Diff line Loading @@ -252,6 +252,11 @@ public class WindowStateTests extends WindowTestsBase { assertFalse(appWindow.canBeImeTarget()); appWindow.mActivityRecord.setWindowingMode(initialMode); // Verify that app window can still be IME target as long as it is visible (even if // it is going to become invisible). appWindow.mActivityRecord.mVisibleRequested = false; assertTrue(appWindow.canBeImeTarget()); // Make windows invisible appWindow.hide(false /* doAnimation */, false /* requestAnim */); imeWindow.hide(false /* doAnimation */, false /* requestAnim */); Loading