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

Commit 4234e6ce authored by Jorim Jaggi's avatar Jorim Jaggi
Browse files

Get rid of double measure

We first need to dispatch insets, then we can measure so we don't
need to immediately measure again.

Fixes: 210881360
Bug: 190379081
Test: Presubmit, Boots
Change-Id: Id40a083dd2e122ca71a96213e94b5bbbb45d596d
parent 45a07122
Loading
Loading
Loading
Loading
+4 −12
Original line number Diff line number Diff line
@@ -2721,6 +2721,10 @@ public final class ViewRootImpl implements ViewParent,
        // Execute enqueued actions on every traversal in case a detached view enqueued an action
        getRunQueue().executeActions(mAttachInfo.mHandler);

        if (mApplyInsetsRequested && !(mWillMove || mWillResize)) {
            dispatchApplyInsets(host);
        }

        boolean layoutRequested = mLayoutRequested && (!mStopped || mReportNextDraw);
        if (layoutRequested) {

@@ -2785,18 +2789,6 @@ public final class ViewRootImpl implements ViewParent,
            }
        }

        if (mApplyInsetsRequested && !(mWillMove || mWillResize)) {
            dispatchApplyInsets(host);
            if (mLayoutRequested) {
                // Short-circuit catching a new layout request here, so
                // we don't need to go through two layout passes when things
                // change due to fitting system windows, which can happen a lot.
                windowSizeMayChange |= measureHierarchy(host, lp,
                        mView.getContext().getResources(),
                        desiredWindowWidth, desiredWindowHeight);
            }
        }

        if (layoutRequested) {
            // Clear this now, so that if anything requests a layout in the
            // rest of this function we will catch it and re-run a full