diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index b42049a6e3a5f..9719ba464ddc2 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -4878,8 +4878,19 @@ public class WindowManagerService extends IWindowManager.Stub if (NW > 0) { mWindowsChanged = true; } + int targetDisplayId = -1; + Task targetTask = mTaskIdToTask.get(token.appWindowToken.groupId); + if (targetTask != null) { + DisplayContent targetDisplayContent = targetTask.getDisplayContent(); + if (targetDisplayContent != null) { + targetDisplayId = targetDisplayContent.getDisplayId(); + } + } for (int i = 0; i < NW; i++) { WindowState win = windows.get(i); + if (targetDisplayId != -1 && win.getDisplayId() != targetDisplayId) { + continue; + } if (DEBUG_WINDOW_MOVEMENT) Slog.v(TAG, "Tmp removing app window " + win); win.getWindowList().remove(win); int j = win.mChildWindows.size();