diff options
author | Dianne Hackborn <hackbod@google.com> | 2011-06-03 14:15:10 -0700 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2011-06-03 14:15:10 -0700 |
commit | 678d344bcb5c7981b5033cdf8070c58783ded01b (patch) | |
tree | b440fe73861eeaedacaf20e43e21f9a1c13bdd64 | |
parent | 3c784fe6a04b198963cdbd9a2a970b9312289533 (diff) | |
parent | b9e2f68b2865307db25fa7295b7ba3bd51c7521a (diff) | |
download | frameworks_base-678d344bcb5c7981b5033cdf8070c58783ded01b.zip frameworks_base-678d344bcb5c7981b5033cdf8070c58783ded01b.tar.gz frameworks_base-678d344bcb5c7981b5033cdf8070c58783ded01b.tar.bz2 |
resolved conflicts for merge of b9e2f68b to master
Change-Id: Icb68aee4c68170f0e7cd7854dbaa61656a349142
3 files changed, 56 insertions, 29 deletions
diff --git a/core/java/android/view/ViewAncestor.java b/core/java/android/view/ViewAncestor.java index bd33a6a..1e72529 100644 --- a/core/java/android/view/ViewAncestor.java +++ b/core/java/android/view/ViewAncestor.java @@ -765,10 +765,17 @@ public final class ViewAncestor extends Handler implements ViewParent, fullRedrawNeeded = true; mLayoutRequested = true; - DisplayMetrics packageMetrics = - mView.getContext().getResources().getDisplayMetrics(); - desiredWindowWidth = packageMetrics.widthPixels; - desiredWindowHeight = packageMetrics.heightPixels; + if (lp.type == WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL) { + // NOTE -- system code, won't try to do compat mode. + Display disp = WindowManagerImpl.getDefault().getDefaultDisplay(); + desiredWindowWidth = disp.getRealWidth(); + desiredWindowHeight = disp.getRealHeight(); + } else { + DisplayMetrics packageMetrics = + mView.getContext().getResources().getDisplayMetrics(); + desiredWindowWidth = packageMetrics.widthPixels; + desiredWindowHeight = packageMetrics.heightPixels; + } // For the very first time, tell the view hierarchy that it // is attached to the window. Note that at this point the surface @@ -912,9 +919,16 @@ public final class ViewAncestor extends Handler implements ViewParent, || lp.height == ViewGroup.LayoutParams.WRAP_CONTENT) { windowSizeMayChange = true; - DisplayMetrics packageMetrics = res.getDisplayMetrics(); - desiredWindowWidth = packageMetrics.widthPixels; - desiredWindowHeight = packageMetrics.heightPixels; + if (lp.type == WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL) { + // NOTE -- system code, won't try to do compat mode. + Display disp = WindowManagerImpl.getDefault().getDefaultDisplay(); + desiredWindowWidth = disp.getRealWidth(); + desiredWindowHeight = disp.getRealHeight(); + } else { + DisplayMetrics packageMetrics = res.getDisplayMetrics(); + desiredWindowWidth = packageMetrics.widthPixels; + desiredWindowHeight = packageMetrics.heightPixels; + } } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java index 0aaf5e5..5b5801d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java @@ -309,7 +309,7 @@ public class TabletStatusBar extends StatusBar implements final Resources res = mContext.getResources(); final Display d = WindowManagerImpl.getDefault().getDefaultDisplay(); return Math.max(res.getDimensionPixelSize(R.dimen.notification_panel_min_height), - d.getHeight()); + d.getRealHeight()); } @Override diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 09b0e87..8520219 100755 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -1953,28 +1953,41 @@ public class PhoneWindowManager implements WindowManagerPolicy { Log.v(TAG, "layoutWindowLw(" + attrs.getTitle() + "): normal window"); // Otherwise, a normal window must be placed inside the content // of all screen decorations. - pf.left = mContentLeft; - pf.top = mContentTop; - pf.right = mContentRight; - pf.bottom = mContentBottom; - if (adjust != SOFT_INPUT_ADJUST_RESIZE) { - df.left = cf.left = mDockLeft; - df.top = cf.top = mDockTop; - df.right = cf.right = mDockRight; - df.bottom = cf.bottom = mDockBottom; + if (attrs.type == TYPE_STATUS_BAR_PANEL) { + // Status bar panels are the only windows who can go on top of + // the status bar. They are protected by the STATUS_BAR_SERVICE + // permission, so they have the same privileges as the status + // bar itself. + pf.left = df.left = cf.left = vf.left = mUnrestrictedScreenLeft; + pf.top = df.top = cf.top = vf.top = mUnrestrictedScreenTop; + pf.right = df.right = cf.right = vf.right + = mUnrestrictedScreenLeft+mUnrestrictedScreenWidth; + pf.bottom = df.bottom = cf.bottom = vf.bottom + = mUnrestrictedScreenTop+mUnrestrictedScreenHeight; } else { - df.left = cf.left = mContentLeft; - df.top = cf.top = mContentTop; - df.right = cf.right = mContentRight; - df.bottom = cf.bottom = mContentBottom; - } - if (adjust != SOFT_INPUT_ADJUST_NOTHING) { - vf.left = mCurLeft; - vf.top = mCurTop; - vf.right = mCurRight; - vf.bottom = mCurBottom; - } else { - vf.set(cf); + pf.left = mContentLeft; + pf.top = mContentTop; + pf.right = mContentRight; + pf.bottom = mContentBottom; + if (adjust != SOFT_INPUT_ADJUST_RESIZE) { + df.left = cf.left = mDockLeft; + df.top = cf.top = mDockTop; + df.right = cf.right = mDockRight; + df.bottom = cf.bottom = mDockBottom; + } else { + df.left = cf.left = mContentLeft; + df.top = cf.top = mContentTop; + df.right = cf.right = mContentRight; + df.bottom = cf.bottom = mContentBottom; + } + if (adjust != SOFT_INPUT_ADJUST_NOTHING) { + vf.left = mCurLeft; + vf.top = mCurTop; + vf.right = mCurRight; + vf.bottom = mCurBottom; + } else { + vf.set(cf); + } } } } |