diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/Task.java | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 4a643ef6a787..719e2d44eb57 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -1862,6 +1862,11 @@ class Task extends TaskFragment { if (getRequestedOverrideWindowingMode() == WINDOWING_MODE_UNDEFINED) { nextPersistTaskBounds = newParentConfig.windowConfiguration.persistTaskBounds(); } + // Only restore to the last non-fullscreen bounds when the requested override bounds + // have not been explicitly set already. + nextPersistTaskBounds &= + (getRequestedOverrideConfiguration().windowConfiguration.getBounds() == null + || getRequestedOverrideConfiguration().windowConfiguration.getBounds().isEmpty()); if (!prevPersistTaskBounds && nextPersistTaskBounds && mLastNonFullscreenBounds != null && !mLastNonFullscreenBounds.isEmpty()) { // Bypass onRequestedOverrideConfigurationChanged here to avoid infinite loop. |