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

Commit a32da385 authored by Jorim Jaggi's avatar Jorim Jaggi
Browse files

Fix letterbox insets when starting app

Showing the letterbox with checking on HAS_DRAWN is too late. We
also need to show it in READY_TO_SHOW such that we have it
available when starting the transition.

Test: Open letterboxed app. Observe no flicker
Test: Capture winscope trace and make sure content insets when
reopening app are correct.
Bug: 76220728
Change-Id: I20ed8b1b5a90cc0a878d3eb1512e1aa1e4cd37f3
parent d8d05ecc
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -407,7 +407,10 @@ public interface WindowManagerPolicy extends WindowManagerPolicyConstants {
        /**
         * Returns true if this window has been shown on screen at some time in
         * the past.  Must be called with the window manager lock held.
         *
         * @deprecated Use {@link #isDrawnLw} or any of the other drawn/visibility methods.
         */
        @Deprecated
        public boolean hasDrawnLw();

        /**
+1 −1
Original line number Diff line number Diff line
@@ -1485,7 +1485,7 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
        if (w == null || winHint != null && w != winHint) {
            return;
        }
        final boolean surfaceReady = w.hasDrawnLw()  // Regular case
        final boolean surfaceReady = w.isDrawnLw()  // Regular case
                || w.mWinAnimator.mSurfaceDestroyDeferred  // The preserved surface is still ready.
                || w.isDragResizeChanged();  // Waiting for relayoutWindow to call preserveSurface.
        final boolean needsLetterbox = w.isLetterboxedAppWindow() && fillsParent() && surfaceReady;