Loading services/core/java/com/android/server/wm/WindowStateAnimator.java +9 −13 Original line number Diff line number Diff line Loading @@ -538,22 +538,18 @@ class WindowStateAnimator { // The sync transaction will contain the buffer so the bounds change transaction // will only be applied with the buffer. t.merge(task.getMainWindowSizeChangeTransaction()); task.setMainWindowSizeChangeTransaction(null); } else { // Use pending transaction here instead of the transaction passed in because we // want to ensure the defer transaction is applied on the main transaction and // not on the sync transaction. This is because the sync transaction could // contain the buffer and we'd defer the transaction that contains the buffer // we're deferring on. SurfaceControl.Transaction pendingTransaction = mWin.getPendingTransaction(); pendingTransaction.deferTransactionUntil( task.getMainWindowSizeChangeTask().getSurfaceControl(), mWin.getClientViewRootSurface(), mWin.getFrameNumber()); pendingTransaction.deferTransactionUntil(mSurfaceController.mSurfaceControl, mWin.getClientViewRootSurface(), mWin.getFrameNumber()); pendingTransaction.merge(task.getMainWindowSizeChangeTransaction()); } mWin.applyWithNextDraw(finishedFrame -> { final SurfaceControl.Transaction sizeChangedTransaction = task.getMainWindowSizeChangeTransaction(); if (sizeChangedTransaction != null) { finishedFrame.merge(sizeChangedTransaction); task.setMainWindowSizeChangeTransaction(null); } }); } } } void prepareSurfaceLocked(SurfaceControl.Transaction t) { Loading Loading
services/core/java/com/android/server/wm/WindowStateAnimator.java +9 −13 Original line number Diff line number Diff line Loading @@ -538,22 +538,18 @@ class WindowStateAnimator { // The sync transaction will contain the buffer so the bounds change transaction // will only be applied with the buffer. t.merge(task.getMainWindowSizeChangeTransaction()); task.setMainWindowSizeChangeTransaction(null); } else { // Use pending transaction here instead of the transaction passed in because we // want to ensure the defer transaction is applied on the main transaction and // not on the sync transaction. This is because the sync transaction could // contain the buffer and we'd defer the transaction that contains the buffer // we're deferring on. SurfaceControl.Transaction pendingTransaction = mWin.getPendingTransaction(); pendingTransaction.deferTransactionUntil( task.getMainWindowSizeChangeTask().getSurfaceControl(), mWin.getClientViewRootSurface(), mWin.getFrameNumber()); pendingTransaction.deferTransactionUntil(mSurfaceController.mSurfaceControl, mWin.getClientViewRootSurface(), mWin.getFrameNumber()); pendingTransaction.merge(task.getMainWindowSizeChangeTransaction()); } mWin.applyWithNextDraw(finishedFrame -> { final SurfaceControl.Transaction sizeChangedTransaction = task.getMainWindowSizeChangeTransaction(); if (sizeChangedTransaction != null) { finishedFrame.merge(sizeChangedTransaction); task.setMainWindowSizeChangeTransaction(null); } }); } } } void prepareSurfaceLocked(SurfaceControl.Transaction t) { Loading