diff options
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedDisplayAreaOrganizer.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedDisplayAreaOrganizer.java b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedDisplayAreaOrganizer.java index 1da72f8efbb8..04d1264bdd9d 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedDisplayAreaOrganizer.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedDisplayAreaOrganizer.java @@ -89,6 +89,7 @@ public class OneHandedDisplayAreaOrganizer extends DisplayAreaOrganizer { OneHandedAnimationController.OneHandedTransitionAnimator animator) { mAnimationController.removeAnimator(animator.getToken()); if (mAnimationController.isAnimatorsConsumed()) { + resetWindowsOffsetInternal(animator.getTransitionDirection()); finishOffset(animator.getDestinationOffset(), animator.getTransitionDirection()); } @@ -99,6 +100,7 @@ public class OneHandedDisplayAreaOrganizer extends DisplayAreaOrganizer { OneHandedAnimationController.OneHandedTransitionAnimator animator) { mAnimationController.removeAnimator(animator.getToken()); if (mAnimationController.isAnimatorsConsumed()) { + resetWindowsOffsetInternal(animator.getTransitionDirection()); finishOffset(animator.getDestinationOffset(), animator.getTransitionDirection()); } @@ -205,6 +207,16 @@ public class OneHandedDisplayAreaOrganizer extends DisplayAreaOrganizer { applyTransaction(wct); } + private void resetWindowsOffsetInternal( + @OneHandedAnimationController.TransitionDirection int td) { + if (td == TRANSITION_DIRECTION_TRIGGER) { + return; + } + final WindowContainerTransaction wct = new WindowContainerTransaction(); + resetWindowsOffset(wct); + applyTransaction(wct); + } + private void resetWindowsOffset(WindowContainerTransaction wct) { final SurfaceControl.Transaction tx = mSurfaceControlTransactionFactory.getTransaction(); |