summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author wilsonshih <wilsonshih@google.com> 2024-10-31 07:35:49 +0000
committer wilsonshih <wilsonshih@google.com> 2024-10-31 08:25:00 +0000
commit75d85d2c8a9da40b87d898847b170bb7333ca7a4 (patch)
tree2a31e81f7bce438225a8f93a0850514e9611b3d3
parent428aef405975f5e07e8e47afaf91823ea3c338a4 (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.java4
-rw-r--r--services/core/java/com/android/server/wm/utils/RegionUtils.java5
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();
+ }
}