From 3fe38c0e73e520c6c38454a41a4cffa16faaf67d Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Thu, 3 May 2012 17:28:09 -0700 Subject: Retain current visibility when copying layoutparam The LayoutParams members, systemUiVisibility and subtreeSystemUiVisibility are derived values rather than app-generated values. When copying LayoutParams members make sure these values are not overwritten. Overwriting them was causing the STATUS_BAR_DISABLE_XXX flags to be overwritten exposing elements that should have remained hidden. Fixes bug b6374541. Change-Id: Iaae4b4167e1b148bbdba4d05f473844f7fa3bf8d --- core/java/android/view/ViewRootImpl.java | 3 +++ 1 file changed, 3 insertions(+) (limited to 'core/java/android/view/ViewRootImpl.java') diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index e1d821f1022d..cc336c147bf3 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -763,6 +763,9 @@ public final class ViewRootImpl implements ViewParent, // preserve compatible window flag if exists. int compatibleWindowFlag = mWindowAttributes.flags & WindowManager.LayoutParams.FLAG_COMPATIBLE_WINDOW; + // transfer over system UI visibility values as they carry current state. + attrs.systemUiVisibility = mWindowAttributes.systemUiVisibility; + attrs.subtreeSystemUiVisibility = mWindowAttributes.subtreeSystemUiVisibility; mWindowAttributesChangesFlag = mWindowAttributes.copyFrom(attrs); mWindowAttributes.flags |= compatibleWindowFlag; -- cgit v1.2.3