Loading services/core/java/com/android/server/wm/AppWindowToken.java +5 −2 Original line number Original line Diff line number Diff line Loading @@ -329,11 +329,14 @@ class AppWindowToken extends WindowToken { final DisplayContentList displayList = new DisplayContentList(); final DisplayContentList displayList = new DisplayContentList(); for (int i = allWindows.size() - 1; i >= 0; i--) { for (int i = allWindows.size() - 1; i >= 0; i--) { final WindowState win = allWindows.get(i); final WindowState win = allWindows.get(i); if (!win.mDestroying) { if (!(mAppStopped || win.mWindowRemovalAllowed)) { continue; continue; } } if (!(mAppStopped || win.mWindowRemovalAllowed)) { win.mWinAnimator.destroyPreservedSurfaceLocked(); if (!win.mDestroying) { continue; continue; } } Loading services/core/java/com/android/server/wm/WindowStateAnimator.java +8 −3 Original line number Original line Diff line number Diff line Loading @@ -659,6 +659,13 @@ class WindowStateAnimator { mDestroyPreservedSurfaceUponRedraw = false; mDestroyPreservedSurfaceUponRedraw = false; } } void markPreservedSurfaceForDestroy() { if (mDestroyPreservedSurfaceUponRedraw && !mService.mDestroyPreservedSurface.contains(mWin)) { mService.mDestroyPreservedSurface.add(mWin); } } WindowSurfaceController createSurfaceLocked() { WindowSurfaceController createSurfaceLocked() { final WindowState w = mWin; final WindowState w = mWin; if (w.hasSavedSurface()) { if (w.hasSavedSurface()) { Loading Loading @@ -1518,9 +1525,7 @@ class WindowStateAnimator { if (prepared && mLastHidden && mDrawState == HAS_DRAWN) { if (prepared && mLastHidden && mDrawState == HAS_DRAWN) { if (showSurfaceRobustlyLocked()) { if (showSurfaceRobustlyLocked()) { if (mDestroyPreservedSurfaceUponRedraw) { markPreservedSurfaceForDestroy(); mService.mDestroyPreservedSurface.add(mWin); } mAnimator.requestRemovalOfReplacedWindows(w); mAnimator.requestRemovalOfReplacedWindows(w); mLastHidden = false; mLastHidden = false; if (mIsWallpaper) { if (mIsWallpaper) { Loading Loading
services/core/java/com/android/server/wm/AppWindowToken.java +5 −2 Original line number Original line Diff line number Diff line Loading @@ -329,11 +329,14 @@ class AppWindowToken extends WindowToken { final DisplayContentList displayList = new DisplayContentList(); final DisplayContentList displayList = new DisplayContentList(); for (int i = allWindows.size() - 1; i >= 0; i--) { for (int i = allWindows.size() - 1; i >= 0; i--) { final WindowState win = allWindows.get(i); final WindowState win = allWindows.get(i); if (!win.mDestroying) { if (!(mAppStopped || win.mWindowRemovalAllowed)) { continue; continue; } } if (!(mAppStopped || win.mWindowRemovalAllowed)) { win.mWinAnimator.destroyPreservedSurfaceLocked(); if (!win.mDestroying) { continue; continue; } } Loading
services/core/java/com/android/server/wm/WindowStateAnimator.java +8 −3 Original line number Original line Diff line number Diff line Loading @@ -659,6 +659,13 @@ class WindowStateAnimator { mDestroyPreservedSurfaceUponRedraw = false; mDestroyPreservedSurfaceUponRedraw = false; } } void markPreservedSurfaceForDestroy() { if (mDestroyPreservedSurfaceUponRedraw && !mService.mDestroyPreservedSurface.contains(mWin)) { mService.mDestroyPreservedSurface.add(mWin); } } WindowSurfaceController createSurfaceLocked() { WindowSurfaceController createSurfaceLocked() { final WindowState w = mWin; final WindowState w = mWin; if (w.hasSavedSurface()) { if (w.hasSavedSurface()) { Loading Loading @@ -1518,9 +1525,7 @@ class WindowStateAnimator { if (prepared && mLastHidden && mDrawState == HAS_DRAWN) { if (prepared && mLastHidden && mDrawState == HAS_DRAWN) { if (showSurfaceRobustlyLocked()) { if (showSurfaceRobustlyLocked()) { if (mDestroyPreservedSurfaceUponRedraw) { markPreservedSurfaceForDestroy(); mService.mDestroyPreservedSurface.add(mWin); } mAnimator.requestRemovalOfReplacedWindows(w); mAnimator.requestRemovalOfReplacedWindows(w); mLastHidden = false; mLastHidden = false; if (mIsWallpaper) { if (mIsWallpaper) { Loading