Don't crop top-most windows at rest.

They can affect the system decor state, cropping to their
current requested state is too aggressive.

Bug:11079003
Change-Id: Ifec576d41cdefd1b851463d4b12311f1a8e27b3d
This commit is contained in:
John Spurlock
2013-10-08 10:08:32 -04:00
parent be5ba9a255
commit 65567d4e6c

View File

@@ -3003,9 +3003,12 @@ public class PhoneWindowManager implements WindowManagerPolicy {
dcf.bottom = mSystemBottom;
final boolean inheritTranslucentDecor = (attrs.privateFlags
& WindowManager.LayoutParams.PRIVATE_FLAG_INHERIT_TRANSLUCENT_DECOR) != 0;
if (attrs.type >= WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW
&& attrs.type <= WindowManager.LayoutParams.LAST_APPLICATION_WINDOW
&& !inheritTranslucentDecor) {
final boolean isAppWindow =
attrs.type >= WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW &&
attrs.type <= WindowManager.LayoutParams.LAST_APPLICATION_WINDOW;
final boolean topAtRest =
win == mTopFullscreenOpaqueWindowState && !win.isAnimatingLw();
if (isAppWindow && !inheritTranslucentDecor && !topAtRest) {
if ((sysUiFl & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0
&& (fl & WindowManager.LayoutParams.FLAG_FULLSCREEN) == 0
&& (fl & WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) == 0) {