summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Tetsutoki Shiozawa <tetsutoki.shiozawa@sony.com> 2018-05-18 10:55:01 +0900
committer Jorim Jaggi <jjaggi@google.com> 2018-05-22 17:09:16 +0200
commit64c5f0c37cb2e911c6d40bc84ecbce4b02ad30a3 (patch)
treed4799617853216f0cec43bb46294ac2c387c91c7
parent6df95fa08778b0639b75182d9dc16764d125408f (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.java2
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.