summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/WindowLayersController.java27
1 files changed, 13 insertions, 14 deletions
diff --git a/services/core/java/com/android/server/wm/WindowLayersController.java b/services/core/java/com/android/server/wm/WindowLayersController.java
index d843a8ce398f..e018a4ef80ba 100644
--- a/services/core/java/com/android/server/wm/WindowLayersController.java
+++ b/services/core/java/com/android/server/wm/WindowLayersController.java
@@ -77,28 +77,22 @@ public class WindowLayersController {
int oldLayer = w.mLayer;
if (w.mBaseLayer == curBaseLayer || w.mIsImWindow || (i > 0 && w.mIsWallpaper)) {
curLayer += WINDOW_LAYER_MULTIPLIER;
- w.mLayer = curLayer;
} else {
curBaseLayer = curLayer = w.mBaseLayer;
- w.mLayer = curLayer;
- }
- if (w.mLayer != oldLayer) {
- layerChanged = true;
- anyLayerChanged = true;
}
+ assignAnimLayer(w, curLayer);
- final WindowStateAnimator winAnimator = w.mWinAnimator;
- oldLayer = winAnimator.mAnimLayer;
- winAnimator.mAnimLayer = w.mLayer + w.getAnimLayerAdjustment() +
- getSpecialWindowAnimLayerAdjustment(w);
- if (winAnimator.mAnimLayer != oldLayer) {
+ // TODO: Preserved old behavior of code here but not sure comparing
+ // oldLayer to mAnimLayer and mLayer makes sense...though the
+ // worst case would be unintentionalp layer reassignment.
+ if (w.mLayer != oldLayer || w.mWinAnimator.mAnimLayer != oldLayer) {
layerChanged = true;
anyLayerChanged = true;
}
if (w.mAppToken != null) {
mHighestApplicationLayer = Math.max(mHighestApplicationLayer,
- winAnimator.mAnimLayer);
+ w.mWinAnimator.mAnimLayer);
}
collectSpecialWindows(w);
@@ -223,12 +217,17 @@ public class WindowLayersController {
private int assignAndIncreaseLayerIfNeeded(WindowState win, int layer) {
if (win != null) {
- win.mLayer = layer;
- win.mWinAnimator.mAnimLayer = layer;
+ assignAnimLayer(win, layer);
layer++;
}
return layer;
}
+
+ private void assignAnimLayer(WindowState w, int layer) {
+ w.mLayer = layer;
+ w.mWinAnimator.mAnimLayer = w.mLayer + w.getAnimLayerAdjustment() +
+ getSpecialWindowAnimLayerAdjustment(w);
+ }
void dump(PrintWriter pw, String s) {
if (mInputMethodAnimLayerAdjustment != 0 ||