From 62d324e0e5382388b284e9b1d1ced228f2077fc4 Mon Sep 17 00:00:00 2001 From: Linus Tufvesson Date: Mon, 29 Apr 2024 16:32:15 +0200 Subject: Hide SAW subwindows .. when top window is hidden through Window#setHideOverlayWindows Bug: 318683640 Test: atest CtsWindowManagerDeviceWindow:HideOverlayWindowsTest Flag: EXEMPT securityfix (cherry picked from commit c37bc9147086f497ac7b1595083836014f524d5f) (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:55d02153259003b7552e7eef70b9e4f3f0dcd45c) Merged-In: If19240f5aec2e048de80d75cbbdc00be47622d7f Change-Id: If19240f5aec2e048de80d75cbbdc00be47622d7f --- services/core/java/com/android/server/wm/WindowState.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index 3dfcf1ff55a8..cdb3aa4c110d 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -3121,12 +3121,13 @@ class WindowState extends WindowContainer implements WindowManagerP } void setForceHideNonSystemOverlayWindowIfNeeded(boolean forceHide) { + final int baseType = getBaseType(); if (mSession.mCanAddInternalSystemWindow - || (!isSystemAlertWindowType(mAttrs.type) && mAttrs.type != TYPE_TOAST)) { + || (!isSystemAlertWindowType(baseType) && baseType != TYPE_TOAST)) { return; } - if (mAttrs.type == TYPE_APPLICATION_OVERLAY && mAttrs.isSystemApplicationOverlay() + if (baseType == TYPE_APPLICATION_OVERLAY && mAttrs.isSystemApplicationOverlay() && mSession.mCanCreateSystemApplicationOverlay) { return; } -- cgit v1.2.3