diff options
| author | 2023-05-31 10:31:45 +0000 | |
|---|---|---|
| committer | 2023-05-31 10:31:45 +0000 | |
| commit | b1432a74f442b8f6086b8ead93e8d1be13ac9441 (patch) | |
| tree | 177a36e35c2dd17c44e95a4c00b37c10b692be33 | |
| parent | 749e096821428a80411d3a8918076de7a1288046 (diff) | |
| parent | bed0fbf36c0ee6df9b6c511555fffcd9f456a2a9 (diff) | |
Merge "Avoid invisible PiP handling input events" into udc-dev am: 4af5694eb0 am: bed0fbf36c
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23391376
Change-Id: I08d008111fda2c5a2fbfde00311bcb5ea4ed025d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java index dc0a2943d394..f9d615ad0cf6 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java @@ -1079,10 +1079,28 @@ public class PipTransition extends PipTransitionController { } final float alphaStart = show ? 0 : 1; final float alphaEnd = show ? 1 : 0; + final PipAnimationController.PipTransactionHandler transactionHandler = + new PipAnimationController.PipTransactionHandler() { + @Override + public boolean handlePipTransaction(SurfaceControl leash, + SurfaceControl.Transaction tx, Rect destinationBounds, float alpha) { + if (alpha == 0) { + if (show) { + tx.setPosition(leash, destinationBounds.left, destinationBounds.top); + } else { + // Put PiP out of the display so it won't block touch when it is hidden. + final Rect displayBounds = mPipDisplayLayoutState.getDisplayBounds(); + final int max = Math.max(displayBounds.width(), displayBounds.height()); + tx.setPosition(leash, max, max); + } + } + return false; + } + }; mPipAnimationController .getAnimator(taskInfo, leash, mPipBoundsState.getBounds(), alphaStart, alphaEnd) .setTransitionDirection(TRANSITION_DIRECTION_SAME) - .setPipAnimationCallback(mPipAnimationCallback) + .setPipTransactionHandler(transactionHandler) .setDuration(mEnterExitAnimationDuration) .start(); mHasFadeOut = !show; |