diff --git a/services/core/java/com/android/server/wm/InputMonitor.java b/services/core/java/com/android/server/wm/InputMonitor.java index 65062e576d550..ea72e12783c36 100644 --- a/services/core/java/com/android/server/wm/InputMonitor.java +++ b/services/core/java/com/android/server/wm/InputMonitor.java @@ -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; + } } }