diff options
author | Craig Mautner <cmautner@google.com> | 2013-08-09 18:48:48 -0700 |
---|---|---|
committer | Craig Mautner <cmautner@google.com> | 2013-08-10 11:48:18 -0700 |
commit | 6201c2ac418424424573343d61b2b5bda3de77e2 (patch) | |
tree | 481c34994c485d5bda61aa8e200476def586a90b /services/java/com | |
parent | 7a605df3137ee571dec855761c0cb15b28513d26 (diff) | |
download | frameworks_base-6201c2ac418424424573343d61b2b5bda3de77e2.zip frameworks_base-6201c2ac418424424573343d61b2b5bda3de77e2.tar.gz frameworks_base-6201c2ac418424424573343d61b2b5bda3de77e2.tar.bz2 |
Put animation background behind visible wallpaper
The new wallpaper positioning associated with multiple activity stacks
put animation backgrounds in front of the wallpaper. This caused
hideous jank. Testing for visible wallpaper and moving the background
behind it fixes the jank.
Fixes bug 10078282.
Possibly fixes bug 10247094.
Change-Id: I3f4e07accd7276d59725192081904b791f77781f
Diffstat (limited to 'services/java/com')
-rw-r--r-- | services/java/com/android/server/am/ActivityManagerService.java | 2 | ||||
-rw-r--r-- | services/java/com/android/server/wm/WindowManagerService.java | 21 |
2 files changed, 8 insertions, 15 deletions
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index 3d8843e..21493f1 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -210,7 +210,7 @@ public final class ActivityManagerService extends ActivityManagerNative static final boolean DEBUG_BACKGROUND_BROADCAST = DEBUG_BROADCAST || false; static final boolean DEBUG_CLEANUP = localLOGV || false; static final boolean DEBUG_CONFIGURATION = localLOGV || false; - static final boolean DEBUG_FOCUS = true; + static final boolean DEBUG_FOCUS = false; static final boolean DEBUG_IMMERSIVE = localLOGV || false; static final boolean DEBUG_MU = localLOGV || false; static final boolean DEBUG_OOM_ADJ = localLOGV || false; diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index 364b854..07e1e12 100644 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -194,9 +194,6 @@ public class WindowManagerService extends IWindowManager.Stub static final boolean PROFILE_ORIENTATION = false; static final boolean localLOGV = DEBUG; - final static boolean REVERSE_ITERATOR = true; - final static boolean FORWARD_ITERATOR = false; - /** How much to multiply the policy's type layer, to reserve room * for multiple windows of the same type and Z-ordering adjustment * with TYPE_LAYER_OFFSET. */ @@ -9574,19 +9571,15 @@ public class WindowManagerService extends IWindowManager.Stub return doRequest; } - /** If a window that has an animation specifying a colored background is the current wallpaper - * target, then the color goes *below* the wallpaper so we don't cause the wallpaper to + /** If a window that has an animation specifying a colored background and the current wallpaper + * is visible, then the color goes *below* the wallpaper so we don't cause the wallpaper to * suddenly disappear. */ int adjustAnimationBackground(WindowStateAnimator winAnimator) { - final WindowState win = winAnimator.mWin; - if (mWallpaperTarget == win || mLowerWallpaperTarget == win - || mUpperWallpaperTarget == win) { - WindowList windows = win.getWindowList(); - for (int i = windows.size() - 1; i >= 0; --i) { - WindowState testWin = windows.get(i); - if (testWin.mIsWallpaper) { - return testWin.mWinAnimator.mAnimLayer; - } + WindowList windows = winAnimator.mWin.getWindowList(); + for (int i = windows.size() - 1; i >= 0; --i) { + WindowState testWin = windows.get(i); + if (testWin.mIsWallpaper && testWin.isVisibleNow()) { + return testWin.mWinAnimator.mAnimLayer; } } return winAnimator.mAnimLayer; |