diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index a236699209a0b..79c0ada8700b2 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -5870,7 +5870,11 @@ class Task extends WindowContainer { final TaskDisplayArea taskDisplayArea = getDisplayArea(); // If the top activity is the resumed one, nothing to do. + // For devices that are not in fullscreen mode (e.g. freeform windows), it's possible + // we still want to proceed if the visibility of other windows have changed (e.g. bringing + // a fullscreen window forward to cover another freeform activity.) if (mResumedActivity == next && next.isState(RESUMED) + && taskDisplayArea.getWindowingMode() != WINDOWING_MODE_FREEFORM && taskDisplayArea.allResumedActivitiesComplete()) { // Make sure we have executed any pending transitions, since there // should be nothing left to do at this point.