Fix pip window can't move in recents

Just place the pip input consumer at the top display area instead of
the root task, or the recents input consumer would take all touch for
it's already put to the top of the display area.

Test: enabled pip, enter recents from app, move pip
Bug: 231419738
Change-Id: I15d765c01ebd541ee247ff12cbb3775b42ea3307
This commit is contained in:
Arthur Hung
2022-05-04 11:08:57 +00:00
parent 5f937a7093
commit 62ff35d2ab

View File

@@ -573,7 +573,7 @@ final class InputMonitor {
recentsAnimationController.getTargetAppDisplayArea();
if (targetDA != null) {
mRecentsAnimationInputConsumer.reparent(mInputTransaction, targetDA);
mRecentsAnimationInputConsumer.show(mInputTransaction, MAX_VALUE - 1);
mRecentsAnimationInputConsumer.show(mInputTransaction, MAX_VALUE - 2);
mAddRecentsAnimationInputConsumerHandle = false;
}
}
@@ -584,10 +584,14 @@ final class InputMonitor {
final Task rootTask = w.getTask().getRootTask();
mPipInputConsumer.mWindowHandle.replaceTouchableRegionWithCrop(
rootTask.getSurfaceControl());
final DisplayArea targetDA = rootTask.getDisplayArea();
// We set the layer to z=MAX-1 so that it's always on top.
mPipInputConsumer.reparent(mInputTransaction, rootTask);
mPipInputConsumer.show(mInputTransaction, MAX_VALUE - 1);
mAddPipInputConsumerHandle = false;
if (targetDA != null) {
mPipInputConsumer.layout(mInputTransaction, rootTask.getBounds());
mPipInputConsumer.reparent(mInputTransaction, targetDA);
mPipInputConsumer.show(mInputTransaction, MAX_VALUE - 1);
mAddPipInputConsumerHandle = false;
}
}
}