diff options
| author | 2018-05-18 10:55:01 +0900 | |
|---|---|---|
| committer | 2018-05-22 17:09:16 +0200 | |
| commit | 64c5f0c37cb2e911c6d40bc84ecbce4b02ad30a3 (patch) | |
| tree | d4799617853216f0cec43bb46294ac2c387c91c7 | |
| parent | 6df95fa08778b0639b75182d9dc16764d125408f (diff) | |
[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
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowState.java | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index dac85b345624..c797d8d35db2 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -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. |