diff options
| author | 2023-07-04 01:53:52 +0000 | |
|---|---|---|
| committer | 2023-07-04 01:53:52 +0000 | |
| commit | bf1b4aa1bff13cb1497c3980a6db47c8eba2f59a (patch) | |
| tree | 7fb3b3ddcf7f5c4f615a3127cfdd3c33d2327c0e | |
| parent | 4e43a56513b2b2588acb8a7d3e7bdea74e3a8c51 (diff) | |
| parent | 4552d3e896c884a43a836a55b1329fe304ff5ca7 (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.java | 2 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowToken.java | 11 |
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; } |