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

Commit 5a9ecee7 authored by David Stevens's avatar David Stevens
Browse files

Check correct DisplayContent when making window freezing screen

When an AppWindowToken is made visible, it checks if any of its windows
are in a state that necessitates freezing the screen. Windows should
check whether their DisplayContent is ready, not whether the default
display is ready.

For apps on secondary displays, the incorrect check was causing spurious
orientation changes for their starting window if the primary display was
off, which was interrupting the task transition animation.

Bug: 34280365
Test: manual
Change-Id: Ifd3be2aedc32c42f3c3f1b15f9f0a69a839f8c62
parent 0d008e32
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -5811,10 +5811,7 @@ public class WindowManagerService extends IWindowManager.Stub
        // If the screen is currently frozen or off, then keep
        // it frozen/off until this window draws at its new
        // orientation.
        // TODO (multidisplay): Support screen freezing on secondary displays.
        final DisplayContent dc = mRoot.getDisplayContent(DEFAULT_DISPLAY);
        if ((dc == null || !dc.okToDisplay())
                && mWindowsFreezingScreen != WINDOWS_FREEZING_SCREENS_TIMEOUT) {
        if (!w.mToken.okToDisplay() && mWindowsFreezingScreen != WINDOWS_FREEZING_SCREENS_TIMEOUT) {
            if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "Changing surface while display frozen: " + w);
            w.setOrientationChanging(true);
            w.mLastFreezeDuration = 0;