diff options
| author | 2021-12-24 10:32:15 +0800 | |
|---|---|---|
| committer | 2021-12-29 16:50:48 +0800 | |
| commit | fb669d9ca7db18c98b665ed639bc5057a118720a (patch) | |
| tree | d9a68aa4e0956d6ce1c91c903edea88771d4e188 | |
| parent | ca48c3874f6f9ad80a42005fd8d087cdc57c711b (diff) | |
Fixes starting window being occluded when enable shell transition
- Fix starting window layer so the layer won't become lower when Shell
is applying finish transaction.
- Fix cannot remove starting window because there were set
mAnimatingExit to true while the window is in transition without apply
exit animation.
Bug: 211045248
Bug: 211844337
Test: enable shell transition, run OpenAppColdTest
Change-Id: Ie05b356048ea2db907704911736f0f93e49eb2e8
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowManagerService.java | 6 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowState.java | 2 |
2 files changed, 3 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index fc1fd92c5ba3..7be128b53f8c 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -2548,10 +2548,8 @@ public class WindowManagerService extends IWindowManager.Stub if (win.mAttrs.type == TYPE_APPLICATION_STARTING) { transit = WindowManagerPolicy.TRANSIT_PREVIEW_DONE; } - if (win.inTransition()) { - focusMayChange = true; - win.mAnimatingExit = true; - } else if (win.isWinVisibleLw() && winAnimator.applyAnimationLocked(transit, false)) { + + if (win.isWinVisibleLw() && winAnimator.applyAnimationLocked(transit, false)) { focusMayChange = true; win.mAnimatingExit = true; } else if (win.mDisplayContent.okToAnimate() && win.isAnimating(TRANSITION | PARENTS, diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index f6729c552cc3..e8f2e9e71090 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -5427,7 +5427,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP @Override void assignLayer(Transaction t, int layer) { - if (isStartingWindowAssociatedToTask()) { + if (mStartingData != null) { // The starting window should cover the task. t.setLayer(mSurfaceControl, Integer.MAX_VALUE); return; |