diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 4716141ee8d30..755ae31c077b2 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -1913,25 +1913,18 @@ public final class ViewRootImpl implements ViewParent, private boolean updateBoundsLayer(SurfaceControl.Transaction t) { if (mBoundsLayer != null) { setBoundsLayerCrop(t); - t.deferTransactionUntil(mBoundsLayer, getSurfaceControl(), - mSurface.getNextFrameNumber()); return true; } return false; } - private void prepareSurfaces(boolean sizeChanged) { + private void prepareSurfaces() { final SurfaceControl.Transaction t = mTransaction; final SurfaceControl sc = getSurfaceControl(); if (!sc.isValid()) return; - boolean applyTransaction = updateBoundsLayer(t); - if (sizeChanged) { - applyTransaction = true; - t.setBufferSize(sc, mSurfaceSize.x, mSurfaceSize.y); - } - if (applyTransaction) { - t.apply(); + if (updateBoundsLayer(t)) { + mergeWithNextTransaction(t, mSurface.getNextFrameNumber()); } } @@ -3036,7 +3029,7 @@ public final class ViewRootImpl implements ViewParent, // stopping, but on the client side it doesn't get stopped since it's restarted quick // enough. WMS doesn't want to keep around old children since they will leak when the // client creates new children. - prepareSurfaces(surfaceSizeChanged); + prepareSurfaces(); } final boolean didLayout = layoutRequested && (!mStopped || mReportNextDraw);