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

Commit 45f6a271 authored by Robert Carr's avatar Robert Carr
Browse files

Prevent triggering orientation changes until previous completes.

Currently we defer rotation while the screen rotation animation
is animating, but there is an additional interval after the animation
completes where the display may not yet be unfrozen and attempting to
rotate again will not work.

Bug: 31749456
Change-Id: I5f6830d85fb326d5032b597cbed1b767f0b627f5
parent d5aa6361
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -6807,6 +6807,13 @@ public class WindowManagerService extends IWindowManager.Stub
            if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "Deferring rotation, animation in progress.");
            return false;
        }
        if (mDisplayFrozen) {
            // Even if the screen rotation animation has finished (e.g. isAnimating
            // returns false), there is still some time where we haven't yet unfrozen
            // the display. We also need to abort rotation here.
            if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "Deferring rotation, still finishing previous rotation");
            return false;
        }

        if (!mDisplayEnabled) {
            // No point choosing a rotation if the display is not enabled.