Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6f009f90 authored by jorgegil@google.com's avatar jorgegil@google.com
Browse files

Only restore to mLastNonFullscreenBounds if requested bounds unset

Whenever a task changes windowing mode to freeform (or undefined and
its parent is freeform), the last non-fullscreen bounds are restored.
This CL changes that so that the restore bounds are used only when
the requested override window config bounds are null/empty, to
prevent overwriting bounds set by wm shell in a transition's WCT.

Bug: 235885662
Test: atest TaskTests
Change-Id: Iba9c94d700ad4e1ef05073353c0d47c34daf5b26
parent 86a33bf1
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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.