summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Riddle Hsu <riddlehsu@google.com> 2023-07-04 01:53:52 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-07-04 01:53:52 +0000
commitbf1b4aa1bff13cb1497c3980a6db47c8eba2f59a (patch)
tree7fb3b3ddcf7f5c4f615a3127cfdd3c33d2327c0e
parent4e43a56513b2b2588acb8a7d3e7bdea74e3a8c51 (diff)
parent4552d3e896c884a43a836a55b1329fe304ff5ca7 (diff)
Merge "Avoid changing z-order of overlay layer after resizing display" into udc-qpr-dev
-rw-r--r--services/core/java/com/android/server/wm/Transition.java2
-rw-r--r--services/core/java/com/android/server/wm/WindowToken.java11
2 files changed, 12 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java
index 5b3bbd50cb2d..1b27bb17f599 100644
--- a/services/core/java/com/android/server/wm/Transition.java
+++ b/services/core/java/com/android/server/wm/Transition.java
@@ -2270,7 +2270,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
// transitions anyways).
return wc.getParent().asDisplayContent().getWindowingLayer();
}
- return wc.getParent().getSurfaceControl();
+ return wc.getParentSurfaceControl();
}
/**
diff --git a/services/core/java/com/android/server/wm/WindowToken.java b/services/core/java/com/android/server/wm/WindowToken.java
index 31afcbf26220..9806be85467b 100644
--- a/services/core/java/com/android/server/wm/WindowToken.java
+++ b/services/core/java/com/android/server/wm/WindowToken.java
@@ -388,12 +388,23 @@ class WindowToken extends WindowContainer<WindowState> {
@Override
SurfaceControl.Builder makeSurface() {
final SurfaceControl.Builder builder = super.makeSurface();
+ // The overlay may use COLOR_MODE_A8 that needs to be at the top of the display to avoid
+ // additional memory usage, see b/235601833. Note that getParentSurfaceControl() must use
+ // the same parent.
if (mRoundedCornerOverlay) {
builder.setParent(null);
}
return builder;
}
+ @Override
+ public SurfaceControl getParentSurfaceControl() {
+ if (mRoundedCornerOverlay) {
+ return null;
+ }
+ return super.getParentSurfaceControl();
+ }
+
boolean isClientVisible() {
return mClientVisible;
}