Loading services/core/java/com/android/server/input/InputWindowHandle.java +1 −1 Original line number Diff line number Diff line Loading @@ -92,7 +92,7 @@ public final class InputWindowHandle { public int inputFeatures; // Display this input is on. public final int displayId; public int displayId; private native void nativeDispose(); Loading services/core/java/com/android/server/wm/WindowState.java +3 −1 Original line number Diff line number Diff line Loading @@ -178,6 +178,7 @@ import android.util.MergedConfiguration; import android.util.Slog; import android.util.TimeUtils; import android.util.proto.ProtoOutputStream; import android.view.Display; import android.view.DisplayCutout; import android.view.DisplayInfo; import android.view.Gravity; Loading Loading @@ -1366,6 +1367,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP // Window was not laid out for this display yet, so make sure mLayoutSeq does not match. if (dc != null) { mLayoutSeq = dc.mLayoutSeq - 1; mInputWindowHandle.displayId = dc.getDisplayId(); } } Loading @@ -1378,7 +1380,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP public int getDisplayId() { final DisplayContent displayContent = getDisplayContent(); if (displayContent == null) { return -1; return Display.INVALID_DISPLAY; } return displayContent.getDisplayId(); } Loading services/tests/servicestests/src/com/android/server/wm/WindowStateTests.java +11 −0 Original line number Diff line number Diff line Loading @@ -326,6 +326,17 @@ public class WindowStateTests extends WindowTestsBase { assertThat(app.mLayoutSeq, not(is(mDisplayContent.mLayoutSeq))); } @Test public void testDisplayIdUpdatedOnReparent() throws Exception { final WindowState app = createWindow(null, TYPE_APPLICATION, "app"); // fake a different display app.mInputWindowHandle.displayId = mDisplayContent.getDisplayId() + 1; app.onDisplayChanged(mDisplayContent); assertThat(app.mInputWindowHandle.displayId, is(mDisplayContent.getDisplayId())); assertThat(app.getDisplayId(), is(mDisplayContent.getDisplayId())); } private void testPrepareWindowToDisplayDuringRelayout(boolean wasVisible) { reset(mPowerManagerWrapper); final WindowState root = createWindow(null, TYPE_APPLICATION, "root"); Loading Loading
services/core/java/com/android/server/input/InputWindowHandle.java +1 −1 Original line number Diff line number Diff line Loading @@ -92,7 +92,7 @@ public final class InputWindowHandle { public int inputFeatures; // Display this input is on. public final int displayId; public int displayId; private native void nativeDispose(); Loading
services/core/java/com/android/server/wm/WindowState.java +3 −1 Original line number Diff line number Diff line Loading @@ -178,6 +178,7 @@ import android.util.MergedConfiguration; import android.util.Slog; import android.util.TimeUtils; import android.util.proto.ProtoOutputStream; import android.view.Display; import android.view.DisplayCutout; import android.view.DisplayInfo; import android.view.Gravity; Loading Loading @@ -1366,6 +1367,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP // Window was not laid out for this display yet, so make sure mLayoutSeq does not match. if (dc != null) { mLayoutSeq = dc.mLayoutSeq - 1; mInputWindowHandle.displayId = dc.getDisplayId(); } } Loading @@ -1378,7 +1380,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP public int getDisplayId() { final DisplayContent displayContent = getDisplayContent(); if (displayContent == null) { return -1; return Display.INVALID_DISPLAY; } return displayContent.getDisplayId(); } Loading
services/tests/servicestests/src/com/android/server/wm/WindowStateTests.java +11 −0 Original line number Diff line number Diff line Loading @@ -326,6 +326,17 @@ public class WindowStateTests extends WindowTestsBase { assertThat(app.mLayoutSeq, not(is(mDisplayContent.mLayoutSeq))); } @Test public void testDisplayIdUpdatedOnReparent() throws Exception { final WindowState app = createWindow(null, TYPE_APPLICATION, "app"); // fake a different display app.mInputWindowHandle.displayId = mDisplayContent.getDisplayId() + 1; app.onDisplayChanged(mDisplayContent); assertThat(app.mInputWindowHandle.displayId, is(mDisplayContent.getDisplayId())); assertThat(app.getDisplayId(), is(mDisplayContent.getDisplayId())); } private void testPrepareWindowToDisplayDuringRelayout(boolean wasVisible) { reset(mPowerManagerWrapper); final WindowState root = createWindow(null, TYPE_APPLICATION, "root"); Loading