Loading services/core/java/com/android/server/wm/AppWindowToken.java +19 −3 Original line number Diff line number Diff line Loading @@ -1620,7 +1620,15 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree @Override public SurfaceControl getAnimationLeashParent() { // All normal app transitions take place in an animation layer which is below the pinned // stack but may be above the parent stacks of the given animating apps. // For transitions in the pinned stack (menu activity) we just let them occur as a child // of the pinned stack. if (!inPinnedWindowingMode()) { return getAppAnimationLayer(); } else { return getStack().getSurfaceControl(); } } boolean applyAnimationLocked(WindowManager.LayoutParams lp, int transit, boolean enter, Loading Loading @@ -1763,10 +1771,18 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree @Override public void onAnimationLeashCreated(Transaction t, SurfaceControl leash) { // The leash is parented to the animation layer. We need to preserve the z-order by using // the prefix order index, but we boost if necessary. int layer = getPrefixOrderIndex(); int layer = 0; if (!inPinnedWindowingMode()) { layer = getPrefixOrderIndex(); } else { // Pinned stacks have animations take place within themselves rather than an animation // layer so we need to preserve the order relative to the stack (e.g. the order of our // task/parent). layer = getParent().getPrefixOrderIndex(); } if (mNeedsZBoost) { layer += Z_BOOST_BASE; } Loading services/core/java/com/android/server/wm/DisplayContent.java +6 −1 Original line number Diff line number Diff line Loading @@ -3583,7 +3583,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo if (s.inSplitScreenWindowingMode() && mSplitScreenDividerAnchor != null) { t.setLayer(mSplitScreenDividerAnchor, layer++); } if (s.isSelfOrChildAnimating()) { if (s.isAppAnimating() && state != ALWAYS_ON_TOP_STATE) { // Ensure the animation layer ends up above the // highest animating stack and no higher. layerForAnimationLayer = layer++; Loading Loading @@ -3632,6 +3632,11 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo super(name, service); } @Override void assignChildLayers(SurfaceControl.Transaction t) { assignChildLayers(t, null /* imeContainer */); } void assignChildLayers(SurfaceControl.Transaction t, WindowContainer imeContainer) { boolean needAssignIme = imeContainer != null && imeContainer.getSurfaceControl() != null; Loading Loading
services/core/java/com/android/server/wm/AppWindowToken.java +19 −3 Original line number Diff line number Diff line Loading @@ -1620,7 +1620,15 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree @Override public SurfaceControl getAnimationLeashParent() { // All normal app transitions take place in an animation layer which is below the pinned // stack but may be above the parent stacks of the given animating apps. // For transitions in the pinned stack (menu activity) we just let them occur as a child // of the pinned stack. if (!inPinnedWindowingMode()) { return getAppAnimationLayer(); } else { return getStack().getSurfaceControl(); } } boolean applyAnimationLocked(WindowManager.LayoutParams lp, int transit, boolean enter, Loading Loading @@ -1763,10 +1771,18 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree @Override public void onAnimationLeashCreated(Transaction t, SurfaceControl leash) { // The leash is parented to the animation layer. We need to preserve the z-order by using // the prefix order index, but we boost if necessary. int layer = getPrefixOrderIndex(); int layer = 0; if (!inPinnedWindowingMode()) { layer = getPrefixOrderIndex(); } else { // Pinned stacks have animations take place within themselves rather than an animation // layer so we need to preserve the order relative to the stack (e.g. the order of our // task/parent). layer = getParent().getPrefixOrderIndex(); } if (mNeedsZBoost) { layer += Z_BOOST_BASE; } Loading
services/core/java/com/android/server/wm/DisplayContent.java +6 −1 Original line number Diff line number Diff line Loading @@ -3583,7 +3583,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo if (s.inSplitScreenWindowingMode() && mSplitScreenDividerAnchor != null) { t.setLayer(mSplitScreenDividerAnchor, layer++); } if (s.isSelfOrChildAnimating()) { if (s.isAppAnimating() && state != ALWAYS_ON_TOP_STATE) { // Ensure the animation layer ends up above the // highest animating stack and no higher. layerForAnimationLayer = layer++; Loading Loading @@ -3632,6 +3632,11 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo super(name, service); } @Override void assignChildLayers(SurfaceControl.Transaction t) { assignChildLayers(t, null /* imeContainer */); } void assignChildLayers(SurfaceControl.Transaction t, WindowContainer imeContainer) { boolean needAssignIme = imeContainer != null && imeContainer.getSurfaceControl() != null; Loading