Let the window manager place the rest of the windows on screen when the status bar is at the bottom.

Change-Id: I29c43beee047bb99695a34e6b202ff3f8400c8c2
This commit is contained in:
Joe Onorato
2010-07-07 18:05:01 -04:00
parent 52c1dc2fd9
commit 34bcebca70
2 changed files with 16 additions and 4 deletions

View File

@@ -1254,10 +1254,17 @@ public class PhoneWindowManager implements WindowManagerPolicy {
if (mStatusBar.isVisibleLw()) {
// If the status bar is hidden, we don't want to cause
// windows behind it to scroll.
mDockTop = mContentTop = mCurTop = mStatusBar.getFrameLw().bottom;
if (DEBUG_LAYOUT) Log.v(TAG, "Status bar: mDockBottom="
+ mDockBottom + " mContentBottom="
+ mContentBottom + " mCurBottom=" + mCurBottom);
final Rect r = mStatusBar.getFrameLw();
if (mDockTop == r.top) mDockTop = r.bottom;
else if (mDockBottom == r.bottom) mDockBottom = r.top;
mContentTop = mCurTop = mDockTop;
mContentBottom = mCurBottom = mDockBottom;
if (DEBUG_LAYOUT) Log.v(TAG, "Status bar: mDockTop=" + mDockTop
+ " mContentTop=" + mContentTop
+ " mCurTop=" + mCurTop
+ " mDockBottom=" + mDockBottom
+ " mContentBottom=" + mContentBottom
+ " mCurBottom=" + mCurBottom);
}
}
}

View File

@@ -10184,6 +10184,11 @@ public class WindowManagerService extends IWindowManager.Stub
private final void performLayoutAndPlaceSurfacesLockedInner(
boolean recoveringMemory) {
if (mDisplay == null) {
Slog.i(TAG, "skipping performLayoutAndPlaceSurfacesLockedInner with no mDisplay");
return;
}
final long currentTime = SystemClock.uptimeMillis();
final int dw = mDisplay.getWidth();
final int dh = mDisplay.getHeight();