Merge "Fix application overlay visibility bug" into qt-r1-dev

This commit is contained in:
TreeHugger Robot
2019-07-31 23:09:23 +00:00
committed by Android (Google) Code Review

View File

@@ -2004,6 +2004,7 @@ public class WindowManagerService extends IWindowManager.Stub
int attrChanges = 0; int attrChanges = 0;
int flagChanges = 0; int flagChanges = 0;
int privateFlagChanges = 0;
if (attrs != null) { if (attrs != null) {
displayPolicy.adjustWindowParamsLw(win, attrs, pid, uid); displayPolicy.adjustWindowParamsLw(win, attrs, pid, uid);
// if they don't have the permission, mask out the status bar bits // if they don't have the permission, mask out the status bar bits
@@ -2032,6 +2033,7 @@ public class WindowManagerService extends IWindowManager.Stub
} }
flagChanges = win.mAttrs.flags ^= attrs.flags; flagChanges = win.mAttrs.flags ^= attrs.flags;
privateFlagChanges = win.mAttrs.privateFlags ^ attrs.privateFlags;
attrChanges = win.mAttrs.copyFrom(attrs); attrChanges = win.mAttrs.copyFrom(attrs);
if ((attrChanges & (WindowManager.LayoutParams.LAYOUT_CHANGED if ((attrChanges & (WindowManager.LayoutParams.LAYOUT_CHANGED
| WindowManager.LayoutParams.SYSTEM_UI_VISIBILITY_CHANGED)) != 0) { | WindowManager.LayoutParams.SYSTEM_UI_VISIBILITY_CHANGED)) != 0) {
@@ -2049,7 +2051,7 @@ public class WindowManagerService extends IWindowManager.Stub
mAccessibilityController.onSomeWindowResizedOrMovedLocked(); mAccessibilityController.onSomeWindowResizedOrMovedLocked();
} }
if ((flagChanges & SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS) != 0) { if ((privateFlagChanges & SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS) != 0) {
updateNonSystemOverlayWindowsVisibilityIfNeeded( updateNonSystemOverlayWindowsVisibilityIfNeeded(
win, win.mWinAnimator.getShown()); win, win.mWinAnimator.getShown());
} }
@@ -7592,7 +7594,7 @@ public class WindowManagerService extends IWindowManager.Stub
return; return;
} }
final boolean systemAlertWindowsHidden = !mHidingNonSystemOverlayWindows.isEmpty(); final boolean systemAlertWindowsHidden = !mHidingNonSystemOverlayWindows.isEmpty();
if (surfaceShown) { if (surfaceShown && win.hideNonSystemOverlayWindowsWhenVisible()) {
if (!mHidingNonSystemOverlayWindows.contains(win)) { if (!mHidingNonSystemOverlayWindows.contains(win)) {
mHidingNonSystemOverlayWindows.add(win); mHidingNonSystemOverlayWindows.add(win);
} }