Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 77832050 authored by Rob Carr's avatar Rob Carr Committed by Android (Google) Code Review
Browse files

Merge "WindowManager: Handle main window size change transaction with BLAST." into sc-dev

parents 085035f9 225ea651
Loading
Loading
Loading
Loading
+9 −13
Original line number Diff line number Diff line
@@ -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) {