Place InputMethod after DockedDivider in window list.

We need to ensure that the InputMethod ends up
after the docked divider so it will have a higher
Z-order for input.

Bug: 28184654
Change-Id: Ifbe943312a82a79e850f106cc906f3749737710d
This commit is contained in:
Robert Carr
2016-04-18 20:27:34 -07:00
parent 1ed0c12a65
commit e63e01a661
2 changed files with 15 additions and 1 deletions

View File

@@ -663,4 +663,8 @@ public class DockedStackDividerController implements DimLayerUser {
public String toShortString() {
return TAG;
}
}
WindowState getWindow() {
return mWindow;
}
}

View File

@@ -1563,6 +1563,16 @@ public class WindowManagerService extends IWindowManager.Stub
mLayersController.setInputMethodAnimLayerAdjustment(0);
}
}
// If the docked divider is visible, we still need to go through this whole
// excercise to find the appropriate input method target (used for animations
// and dialog adjustments), but for purposes of Z ordering we simply wish to
// place it above the docked divider.
WindowState dockedDivider = w.mDisplayContent.mDividerControllerLocked.getWindow();
if (dockedDivider != null && dockedDivider.isVisibleLw()) {
int dividerIndex = windows.indexOf(dockedDivider);
return dividerIndex > 0 ? dividerIndex + 1 : i + 1;
}
return i+1;
}
if (willMove) {