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

Commit f3f98c1e authored by Wale Ogunwale's avatar Wale Ogunwale Committed by Automerger Merge Worker
Browse files

Merge "setBoundsChangeTransaction: Fix two issues" into rvc-dev am: c46f3e0f

Change-Id: I0e9db19ce802b33cab574881d62f0558a8ad91f3
parents 66636332 c46f3e0f
Loading
Loading
Loading
Loading
+20 −2
Original line number Diff line number Diff line
@@ -846,6 +846,23 @@ class WindowStateAnimator {
        }
    }

    private boolean shouldConsumeMainWindowSizeTransaction() {
      // We only consume the transaction when the client is calling relayout
      // because this is the only time we know the frameNumber will be valid
      // due to the client renderer being paused. Put otherwise, only when
      // mInRelayout is true can we guarantee the next frame will contain
      // the most recent configuration.
      if (!mWin.mInRelayout) return false;
      // Since we can only do this for one window, we focus on the main application window
      if (mAttrType != TYPE_BASE_APPLICATION) return false;
      final Task task = mWin.getTask();
      if (task == null) return false;
      if (task.getMainWindowSizeChangeTransaction() == null) return false;
      // Likewise we only focus on the task root, since we can only use one window
      if (!mWin.mActivityRecord.isRootOfTask()) return false;
      return true;
    }

    void setSurfaceBoundariesLocked(final boolean recoveringMemory) {
        if (mSurfaceController == null) {
            return;
@@ -886,8 +903,9 @@ class WindowStateAnimator {
            clipRect = mTmpClipRect;
        }

        if (w.mInRelayout && (mAttrType == TYPE_BASE_APPLICATION) && (task != null)
                && (task.getMainWindowSizeChangeTransaction() != null)) {
        if (shouldConsumeMainWindowSizeTransaction()) {
            task.getSurfaceControl().deferTransactionUntil(mWin.getClientViewRootSurface(),
                    mWin.getFrameNumber());
            mSurfaceController.deferTransactionUntil(mWin.getClientViewRootSurface(),
                    mWin.getFrameNumber());
            SurfaceControl.mergeToGlobalTransaction(task.getMainWindowSizeChangeTransaction());