diff options
3 files changed, 16 insertions, 9 deletions
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 85121fe..edbd62d 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -3459,7 +3459,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } }}); } else { - if (DEBUG_LAYOUT) Slog.v(TAG, "Policy preventing status bar from hiding"); + if (DEBUG_LAYOUT) Slog.v(TAG, "Status bar already hiding"); } } else { if (DEBUG_LAYOUT) Slog.v(TAG, "** SHOWING status bar: top is not fullscreen"); diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index a1e07dc..dc16282 100644 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -3487,9 +3487,9 @@ public class WindowManagerService extends IWindowManager.Stub final int firstToken = tokens.size() - 1; for (int tokenNdx = firstToken; tokenNdx >= 0; --tokenNdx) { final AppWindowToken atoken = tokens.get(tokenNdx); - + if (DEBUG_APP_ORIENTATION) Slog.v(TAG, "Checking app orientation: " + atoken); - + // if we're about to tear down this window and not seek for // the behind activity, don't use it for orientation if (!findingBehind @@ -3498,7 +3498,7 @@ public class WindowManagerService extends IWindowManager.Stub + " -- going to hide"); continue; } - + if (tokenNdx == firstToken) { // If we have hit a new Task, and the bottom // of the previous group didn't explicitly say to use @@ -3512,19 +3512,19 @@ public class WindowManagerService extends IWindowManager.Stub return lastOrientation; } } - + // We ignore any hidden applications on the top. if (atoken.hiddenRequested || atoken.willBeHidden) { if (DEBUG_ORIENTATION) Slog.v(TAG, "Skipping " + atoken + " -- hidden on top"); continue; } - + if (tokenNdx == 0) { // Last token in this task. lastOrientation = atoken.requestedOrientation; } - + int or = atoken.requestedOrientation; // If this application is fullscreen, and didn't explicitly say // to use the orientation behind it, then just take whatever @@ -8605,7 +8605,7 @@ public class WindowManagerService extends IWindowManager.Stub || winAnimator.mSurfaceResized || configChanged) { if (DEBUG_RESIZE || DEBUG_ORIENTATION) { - Slog.v(TAG, "Resize reasons: " + Slog.v(TAG, "Resize reasons for w=" + w + ": " + " contentInsetsChanged=" + w.mContentInsetsChanged + " " + w.mContentInsets.toShortString() + " visibleInsetsChanged=" + w.mVisibleInsetsChanged @@ -9346,7 +9346,7 @@ public class WindowManagerService extends IWindowManager.Stub } setFocusedStackFrame(); - + // Check to see if we are now in a state where the screen should // be enabled, because the window obscured flags have changed. enableScreenIfNeededLocked(); diff --git a/services/java/com/android/server/wm/WindowState.java b/services/java/com/android/server/wm/WindowState.java index 377e8e8..7c6da92 100644 --- a/services/java/com/android/server/wm/WindowState.java +++ b/services/java/com/android/server/wm/WindowState.java @@ -298,6 +298,10 @@ final class WindowState implements WindowManagerPolicy.WindowState { /** When true this window can be displayed on screens owther than mOwnerUid's */ private boolean mShowToOwnerOnly; + /** When true this window is at the top of the screen and should be layed out to extend under + * the status bar */ + boolean mUnderStatusBar = true; + WindowState(WindowManagerService service, Session s, IWindow c, WindowToken token, WindowState attachedWindow, int appOp, int seq, WindowManager.LayoutParams a, int viewVisibility, final DisplayContent displayContent) { @@ -434,6 +438,9 @@ final class WindowState implements WindowManagerPolicy.WindowState { if (mAppToken != null) { mContainingFrame.set(getStackBounds()); + if (mUnderStatusBar) { + mContainingFrame.top = pf.top; + } } else { mContainingFrame.set(pf); } |