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

Commit 75d85d2c authored by wilsonshih's avatar wilsonshih
Browse files

When configuration changed, only attach starting window to task

...if size has changed.
Otherwise it just re-position the task.

Flag: EXEMPT bugfix
Bug: 376262494
Test: entering desktop windowing mode, then run SplashscreenTests
Change-Id: I199901af770db2a03d7266623fe219c67f822ecc
parent 428aef40
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -258,6 +258,7 @@ import com.android.server.policy.WindowManagerPolicy;
import com.android.server.wm.LocalAnimationAdapter.AnimationSpec;
import com.android.server.wm.RefreshRatePolicy.FrameRateVote;
import com.android.server.wm.SurfaceAnimator.AnimationType;
import com.android.server.wm.utils.RegionUtils;
import com.android.window.flags.Flags;

import dalvik.annotation.optimization.NeverCompile;
@@ -2327,7 +2328,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
            if (mStartingData != null && mStartingData.mAssociatedTask == null
                    && mTempConfiguration.windowConfiguration.getRotation()
                            == selfConfiguration.windowConfiguration.getRotation()
                    && !mTempConfiguration.windowConfiguration.getBounds().equals(getBounds())) {
                    && !RegionUtils.sizeEquals(
                            mTempConfiguration.windowConfiguration.getBounds(), getBounds())) {
                mStartingData.mResizedFromTransfer = true;
                // Lock the starting window to task, so it won't resize from transfer anymore.
                mActivityRecord.associateStartingWindowWithTaskIfNeeded();
+5 −0
Original line number Diff line number Diff line
@@ -92,4 +92,9 @@ public class RegionUtils {
        }
        return area;
    }

    /** Returns whether the sizes between the two Rects are equal. */
    public static boolean sizeEquals(Rect a, Rect b) {
        return a.width() == b.width() && a.height() == b.height();
    }
}