summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Evan Rosky <erosky@google.com> 2022-07-08 01:02:26 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-07-08 01:02:26 +0000
commite2c709c120e56c70eaab06f1a5361ad5ff39f34a (patch)
treed9e0bbd7563c4aff2cfcd7391758c5fe5c47ae3f
parent416d479225d26a98bd4e65a3cbd93691aba66c96 (diff)
parentd4dc599bf4d806280ac5576a71d22afd548169bf (diff)
Merge "Mark display ready when it loses active child" into tm-qpr-dev am: d4dc599bf4
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19121777 Change-Id: I6a933e4e18211ff05a455f72091a89b064d1bddb Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--services/core/java/com/android/server/wm/WindowContainer.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java
index 91afa04555ab..19b3384ee404 100644
--- a/services/core/java/com/android/server/wm/WindowContainer.java
+++ b/services/core/java/com/android/server/wm/WindowContainer.java
@@ -3760,6 +3760,15 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
* hierarchy change implies a configuration change.
*/
private void onSyncReparent(WindowContainer oldParent, WindowContainer newParent) {
+ // Check if this is changing displays. If so, mark the old display as "ready" for
+ // transitions. This is to work around the problem where setting readiness against this
+ // container will only set the new display as ready and leave the old display as unready.
+ if (mSyncState != SYNC_STATE_NONE && oldParent != null
+ && oldParent.getDisplayContent() != null && (newParent == null
+ || oldParent.getDisplayContent() != newParent.getDisplayContent())) {
+ mTransitionController.setReady(oldParent.getDisplayContent());
+ }
+
if (newParent == null || newParent.mSyncState == SYNC_STATE_NONE) {
if (mSyncState == SYNC_STATE_NONE) {
return;