summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chavi Weingarten <chaviw@google.com> 2020-05-29 15:45:56 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2020-05-29 15:45:56 +0000
commitbb9ea672ac2832a519cd653b9cd4cc1a70e6699c (patch)
tree68f22ef477d5973287b4aaf8241967126122b582
parenta6bcf4c2d87b0db7f29efa5a20fd647219684cd9 (diff)
parent9511c45efc19fcf0d398af1a3b6f8f1e30cf6c7e (diff)
Merge "Ignore insets provider visibility when checking performLayout" into rvc-dev am: 9511c45efc
Change-Id: I03a19fab37a651c9d154669afa09638fe40f2c1c
-rw-r--r--services/core/java/com/android/server/wm/WindowState.java6
1 files changed, 5 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 ae21174583d2..46d6009b9ab8 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -1790,7 +1790,11 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
final ActivityRecord atoken = mActivityRecord;
return mViewVisibility == View.GONE
|| !mRelayoutCalled
- || (atoken == null && !mToken.isVisible())
+ // We can't check isVisible here because it will also check the client visibility
+ // for WindowTokens. Even if the client is not visible, we still need to perform
+ // a layout since they can request relayout when client visibility is false.
+ // TODO (b/157682066) investigate if we can clean up isVisible
+ || (atoken == null && !(wouldBeVisibleIfPolicyIgnored() && isVisibleByPolicy()))
|| (atoken != null && !atoken.mVisibleRequested)
|| isParentWindowGoneForLayout()
|| (mAnimatingExit && !isAnimatingLw())