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

Commit 64c5f0c3 authored by Tetsutoki Shiozawa's avatar Tetsutoki Shiozawa Committed by Jorim Jaggi
Browse files

[WindowManager] Perform relayout after hiding-window animation

Symptom:
If navibar has been hidden by SYSTEM_UI_FLAG_HIDE_NAVIGATION flag,
it's hard to be shown again. Even though you perform a swipe-from-bottom
gesture, the navibar is not shown.

Root cause:
NavigationBar transition status is not updated. BarController waits for
the next hiding event but it's not notified. And then, BarController
gets a showing request before the previous hiding request is completed.
BarController loses the right transition status.

Solution:
Perform layout after hiding-window animation even if the window does
not have a focus. Relayout makes a chance to BarController to check
whether the navibar is completely hidden or not.

Bug: 80064019
Change-Id: I4c9511643992ea2db250c1deaf18c8d94cc5b61f
parent 6df95fa0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2298,8 +2298,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
                    if (DEBUG_FOCUS_LIGHT) Slog.i(TAG,
                            "setAnimationLocked: setting mFocusMayChange true");
                    mService.mFocusMayChange = true;
                    setDisplayLayoutNeeded();
                }
                setDisplayLayoutNeeded();
                // Window is no longer visible -- make sure if we were waiting
                // for it to be displayed before enabling the display, that
                // we allow the display to be enabled now.