diff options
| author | 2024-10-31 07:35:49 +0000 | |
|---|---|---|
| committer | 2024-10-31 08:25:00 +0000 | |
| commit | 75d85d2c8a9da40b87d898847b170bb7333ca7a4 (patch) | |
| tree | 2a31e81f7bce438225a8f93a0850514e9611b3d3 | |
| parent | 428aef405975f5e07e8e47afaf91823ea3c338a4 (diff) | |
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
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowState.java | 4 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/utils/RegionUtils.java | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index 585e61795e7d..d01e29b2fd5e 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -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(); diff --git a/services/core/java/com/android/server/wm/utils/RegionUtils.java b/services/core/java/com/android/server/wm/utils/RegionUtils.java index ff23145fc6b9..6c5da175644b 100644 --- a/services/core/java/com/android/server/wm/utils/RegionUtils.java +++ b/services/core/java/com/android/server/wm/utils/RegionUtils.java @@ -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(); + } } |