diff options
author | 2020-05-26 20:41:22 +0000 | |
---|---|---|
committer | 2020-05-26 20:41:22 +0000 | |
commit | 58c7846f6a9dd1a7ce14df1c895fc183b6fc0009 (patch) | |
tree | 39919febc0b40ec3e73c85c05f8d8b2635cad189 | |
parent | 40d3143c8a2e5d4cf01cc8e6596737fb63518da4 (diff) | |
parent | 5d9d2ddca2d84f9614a6ccb0b7441d80c4f1e728 (diff) |
Merge "WindowlessWindowManager: Set size when creating surface" into rvc-dev
-rw-r--r-- | core/java/android/view/WindowlessWindowManager.java | 21 | ||||
-rw-r--r-- | services/core/java/com/android/server/wm/ShellRoot.java | 1 |
2 files changed, 14 insertions, 8 deletions
diff --git a/core/java/android/view/WindowlessWindowManager.java b/core/java/android/view/WindowlessWindowManager.java index d20ffb3a6ec1..9b5b8824b0e6 100644 --- a/core/java/android/view/WindowlessWindowManager.java +++ b/core/java/android/view/WindowlessWindowManager.java @@ -136,6 +136,7 @@ public class WindowlessWindowManager implements IWindowSession { final SurfaceControl.Builder b = new SurfaceControl.Builder(mSurfaceSession) .setParent(mRootSurface) .setFormat(attrs.format) + .setBufferSize(getSurfaceWidth(attrs), getSurfaceHeight(attrs)) .setName(attrs.getTitle().toString()); final SurfaceControl sc = b.build(); @@ -242,13 +243,8 @@ public class WindowlessWindowManager implements IWindowSession { WindowManager.LayoutParams attrs = state.mParams; if (viewFlags == View.VISIBLE) { - final Rect surfaceInsets = attrs.surfaceInsets; - int width = surfaceInsets != null - ? attrs.width + surfaceInsets.left + surfaceInsets.right : attrs.width; - int height = surfaceInsets != null - ? attrs.height + surfaceInsets.top + surfaceInsets.bottom : attrs.height; - - t.setBufferSize(sc, width, height).setOpaque(sc, isOpaque(attrs)).show(sc).apply(); + t.setBufferSize(sc, getSurfaceWidth(attrs), getSurfaceHeight(attrs)) + .setOpaque(sc, isOpaque(attrs)).show(sc).apply(); outSurfaceControl.copyFrom(sc); } else { t.hide(sc).apply(); @@ -444,4 +440,15 @@ public class WindowlessWindowManager implements IWindowSession { public android.os.IBinder asBinder() { return null; } + + private int getSurfaceWidth(WindowManager.LayoutParams attrs) { + final Rect surfaceInsets = attrs.surfaceInsets; + return surfaceInsets != null + ? attrs.width + surfaceInsets.left + surfaceInsets.right : attrs.width; + } + private int getSurfaceHeight(WindowManager.LayoutParams attrs) { + final Rect surfaceInsets = attrs.surfaceInsets; + return surfaceInsets != null + ? attrs.height + surfaceInsets.top + surfaceInsets.bottom : attrs.height; + } } diff --git a/services/core/java/com/android/server/wm/ShellRoot.java b/services/core/java/com/android/server/wm/ShellRoot.java index 99f710bd8bd4..7a38bb65f73b 100644 --- a/services/core/java/com/android/server/wm/ShellRoot.java +++ b/services/core/java/com/android/server/wm/ShellRoot.java @@ -156,4 +156,3 @@ public class ShellRoot { } } } - |