summaryrefslogtreecommitdiff
path: root/core/java/android/view/ViewRootImpl.java
diff options
context:
space:
mode:
authorRobert Carr <racarr@google.com>2021-02-08 13:18:30 -0800
committerRobert Carr <racarr@google.com>2021-02-08 13:18:30 -0800
commit4fa6a5f413bbfa5d948d69d70c11f4a376d9ce63 (patch)
tree91fbe7557539c8c7212d10222a7c19a53d2af6fb /core/java/android/view/ViewRootImpl.java
parentb610667bfd88681a2c089150315f8e4eedd3691e (diff)
WindowManagerService: Handle transparent region on client
Since the client owns its own SurfaceControl now, there is no need to call through to the WM just to set transparent regions. Bug: 161937501 Test: Existing tests pass Change-Id: I1767090bc60be72b86879ae806876d49bfa0e06c
Diffstat (limited to 'core/java/android/view/ViewRootImpl.java')
-rw-r--r--core/java/android/view/ViewRootImpl.java13
1 files changed, 8 insertions, 5 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 036a703f178c..8fd897c1c7ee 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -3063,11 +3063,14 @@ public final class ViewRootImpl implements ViewParent,
if (!mTransparentRegion.equals(mPreviousTransparentRegion)) {
mPreviousTransparentRegion.set(mTransparentRegion);
mFullRedrawNeeded = true;
- // reconfigure window manager
- try {
- mWindowSession.setTransparentRegion(mWindow, mTransparentRegion);
- } catch (RemoteException e) {
- }
+ // TODO: Ideally we would do this in prepareSurfaces,
+ // but prepareSurfaces is currently working under
+ // the assumption that we paused the render thread
+ // via the WM relayout code path. We probably eventually
+ // want to synchronize transparent region hint changes
+ // with draws.
+ mTransaction.setTransparentRegionHint(getSurfaceControl(),
+ mTransparentRegion).apply();
}
}