Loading services/core/java/com/android/server/wm/TaskStack.java +4 −1 Original line number Diff line number Diff line Loading @@ -375,7 +375,10 @@ public class TaskStack { for (int appNdx = appWindowTokens.size() - 1; appNdx >= 0; --appNdx) { final WindowList appWindows = appWindowTokens.get(appNdx).allAppWindows; for (int winNdx = appWindows.size() - 1; winNdx >= 0; --winNdx) { mService.removeWindowInnerLocked(appWindows.get(winNdx)); // We are in the middle of changing the state of displays/stacks/tasks. We need // to finish that, before we let layout interfere with it. mService.removeWindowInnerLocked(appWindows.get(winNdx), false /* performLayout */); doAnotherLayoutPass = true; } } Loading services/core/java/com/android/server/wm/WindowManagerService.java +16 −6 Original line number Diff line number Diff line Loading @@ -2793,6 +2793,10 @@ public class WindowManagerService extends IWindowManager.Stub } void removeWindowInnerLocked(WindowState win) { removeWindowInnerLocked(win, true); } void removeWindowInnerLocked(WindowState win, boolean performLayout) { if (win.mRemoved) { // Nothing to do. return; Loading Loading @@ -2890,7 +2894,9 @@ public class WindowManagerService extends IWindowManager.Stub if (displayContent != null) { displayContent.layoutNeeded = true; } if (performLayout) { performLayoutAndPlaceSurfacesLocked(); } if (win.mAppToken != null) { win.mAppToken.updateReportedVisibilityLocked(); } Loading Loading @@ -5193,8 +5199,10 @@ public class WindowManagerService extends IWindowManager.Stub } public void removeStack(int stackId) { synchronized (mWindowMap) { mStackIdToStack.remove(stackId); } } public void removeTask(int taskId) { synchronized (mWindowMap) { Loading Loading @@ -5267,11 +5275,13 @@ public class WindowManagerService extends IWindowManager.Stub } public void getStackBounds(int stackId, Rect bounds) { synchronized (mWindowMap) { final TaskStack stack = mStackIdToStack.get(stackId); if (stack != null) { stack.getBounds(bounds); return; } } bounds.setEmpty(); } Loading Loading
services/core/java/com/android/server/wm/TaskStack.java +4 −1 Original line number Diff line number Diff line Loading @@ -375,7 +375,10 @@ public class TaskStack { for (int appNdx = appWindowTokens.size() - 1; appNdx >= 0; --appNdx) { final WindowList appWindows = appWindowTokens.get(appNdx).allAppWindows; for (int winNdx = appWindows.size() - 1; winNdx >= 0; --winNdx) { mService.removeWindowInnerLocked(appWindows.get(winNdx)); // We are in the middle of changing the state of displays/stacks/tasks. We need // to finish that, before we let layout interfere with it. mService.removeWindowInnerLocked(appWindows.get(winNdx), false /* performLayout */); doAnotherLayoutPass = true; } } Loading
services/core/java/com/android/server/wm/WindowManagerService.java +16 −6 Original line number Diff line number Diff line Loading @@ -2793,6 +2793,10 @@ public class WindowManagerService extends IWindowManager.Stub } void removeWindowInnerLocked(WindowState win) { removeWindowInnerLocked(win, true); } void removeWindowInnerLocked(WindowState win, boolean performLayout) { if (win.mRemoved) { // Nothing to do. return; Loading Loading @@ -2890,7 +2894,9 @@ public class WindowManagerService extends IWindowManager.Stub if (displayContent != null) { displayContent.layoutNeeded = true; } if (performLayout) { performLayoutAndPlaceSurfacesLocked(); } if (win.mAppToken != null) { win.mAppToken.updateReportedVisibilityLocked(); } Loading Loading @@ -5193,8 +5199,10 @@ public class WindowManagerService extends IWindowManager.Stub } public void removeStack(int stackId) { synchronized (mWindowMap) { mStackIdToStack.remove(stackId); } } public void removeTask(int taskId) { synchronized (mWindowMap) { Loading Loading @@ -5267,11 +5275,13 @@ public class WindowManagerService extends IWindowManager.Stub } public void getStackBounds(int stackId, Rect bounds) { synchronized (mWindowMap) { final TaskStack stack = mStackIdToStack.get(stackId); if (stack != null) { stack.getBounds(bounds); return; } } bounds.setEmpty(); } Loading