diff options
3 files changed, 5 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java index 5a502c1fa013..93b1d6297a0c 100644 --- a/services/core/java/com/android/server/wm/AppWindowToken.java +++ b/services/core/java/com/android/server/wm/AppWindowToken.java @@ -556,6 +556,9 @@ class AppWindowToken extends WindowToken { mFrozenBounds.remove(); for (int i = windows.size() - 1; i >= 0; i--) { final WindowState win = windows.get(i); + if (!win.mHasSurface) { + continue; + } win.mLayoutNeeded = true; win.setDisplayLayoutNeeded(); if (!service.mResizingWindows.contains(win)) { diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index a06d3fc74393..91cb8a032cd8 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -584,7 +584,7 @@ class Task implements DimLayer.DimLayerUser { final ArrayList<WindowState> windows = mAppTokens.get(activityNdx).allAppWindows; for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) { final WindowState win = windows.get(winNdx); - if (!resizingWindows.contains(win)) { + if (win.mHasSurface && !resizingWindows.contains(win)) { if (DEBUG_RESIZE) Slog.d(TAG, "resizeWindows: Resizing " + win); resizingWindows.add(win); } diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index 114c2121eed2..3430b3484ef7 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -2152,7 +2152,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { // background. return (mDisplayContent.mDividerControllerLocked.isResizing() || mAppToken != null && !mAppToken.mFrozenBounds.isEmpty()) && - !task.inFreeformWorkspace(); + !task.inFreeformWorkspace() && isVisibleLw(); } |