Fix regressions with reparenting task
- Make the new task immediately visible, and reset the crop on the original task transferred from the leash Fixes: 190550846 Test: Open ApiDemos, autoenter from a task with multiple activities Change-Id: I2527cee68448dc8f1be7634051547c29c596c63a
This commit is contained in:
@@ -7653,17 +7653,23 @@ class Task extends WindowContainer<WindowContainer> {
|
||||
void clearLastRecentsAnimationTransaction() {
|
||||
mLastRecentsAnimationTransaction = null;
|
||||
mLastRecentsAnimationOverlay = null;
|
||||
// reset also the transform introduced by mLastRecentsAnimationTransaction
|
||||
getPendingTransaction().setMatrix(mSurfaceControl, Matrix.IDENTITY_MATRIX, new float[9]);
|
||||
// reset also the crop and transform introduced by mLastRecentsAnimationTransaction
|
||||
Rect bounds = getBounds();
|
||||
getPendingTransaction().setMatrix(mSurfaceControl, Matrix.IDENTITY_MATRIX, new float[9])
|
||||
.setWindowCrop(mSurfaceControl, bounds.width(), bounds.height());
|
||||
}
|
||||
|
||||
void maybeApplyLastRecentsAnimationTransaction() {
|
||||
if (mLastRecentsAnimationTransaction != null) {
|
||||
final SurfaceControl.Transaction tx = getPendingTransaction();
|
||||
if (mLastRecentsAnimationOverlay != null) {
|
||||
getPendingTransaction().reparent(mLastRecentsAnimationOverlay, mSurfaceControl);
|
||||
tx.reparent(mLastRecentsAnimationOverlay, mSurfaceControl);
|
||||
}
|
||||
PictureInPictureSurfaceTransaction.apply(mLastRecentsAnimationTransaction,
|
||||
mSurfaceControl, getPendingTransaction());
|
||||
mSurfaceControl, tx);
|
||||
// If we are transferring the transform from the root task entering PIP, then also show
|
||||
// the new task immediately
|
||||
tx.show(mSurfaceControl);
|
||||
mLastRecentsAnimationTransaction = null;
|
||||
mLastRecentsAnimationOverlay = null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user