am f1058308: Merge "Add window to child window list with correct order"

* commit 'f1058308c62f297c5bca9e9baf8451efeb200805':
  Add window to child window list with correct order
This commit is contained in:
Olawale Ogunwale
2014-11-22 02:34:01 +00:00
committed by Android Git Automerger

View File

@@ -386,28 +386,26 @@ final class WindowState implements WindowManagerPolicy.WindowState {
mAttachedWindow = attachedWindow;
if (WindowManagerService.DEBUG_ADD_REMOVE) Slog.v(TAG, "Adding " + this + " to " + mAttachedWindow);
int children_size = mAttachedWindow.mChildWindows.size();
if (children_size == 0) {
mAttachedWindow.mChildWindows.add(this);
final WindowList childWindows = mAttachedWindow.mChildWindows;
final int numChildWindows = childWindows.size();
if (numChildWindows == 0) {
childWindows.add(this);
} else {
for (int i = 0; i < children_size; i++) {
WindowState child = (WindowState)mAttachedWindow.mChildWindows.get(i);
if (this.mSubLayer < child.mSubLayer) {
mAttachedWindow.mChildWindows.add(i, this);
boolean added = false;
for (int i = 0; i < numChildWindows; i++) {
final int childSubLayer = childWindows.get(i).mSubLayer;
if (mSubLayer < childSubLayer
|| (mSubLayer == childSubLayer && childSubLayer < 0)) {
// We insert the child window into the list ordered by the sub-layer. For
// same sub-layers, the negative one should go below others; the positive
// one should go above others.
childWindows.add(i, this);
added = true;
break;
} else if (this.mSubLayer > child.mSubLayer) {
continue;
}
if (this.mBaseLayer <= child.mBaseLayer) {
mAttachedWindow.mChildWindows.add(i, this);
break;
} else {
continue;
}
}
if (children_size == mAttachedWindow.mChildWindows.size()) {
mAttachedWindow.mChildWindows.add(this);
if (!added) {
childWindows.add(this);
}
}