Merge "Use focused app's stack for IME adjustment" into nyc-dev
This commit is contained in:
@@ -1089,7 +1089,7 @@ public class TaskStack implements DimLayer.DimLayerUser,
|
|||||||
}
|
}
|
||||||
setAdjustedBounds(mTmpAdjustedBounds);
|
setAdjustedBounds(mTmpAdjustedBounds);
|
||||||
|
|
||||||
final boolean isImeTarget = (mService.getImeTargetStackLocked() == this);
|
final boolean isImeTarget = (mService.getImeFocusStackLocked() == this);
|
||||||
if (mAdjustedForIme && adjust && !isImeTarget) {
|
if (mAdjustedForIme && adjust && !isImeTarget) {
|
||||||
final float alpha = Math.max(mAdjustImeAmount, mAdjustDividerAmount)
|
final float alpha = Math.max(mAdjustImeAmount, mAdjustDividerAmount)
|
||||||
* IME_ADJUST_DIM_AMOUNT;
|
* IME_ADJUST_DIM_AMOUNT;
|
||||||
|
|||||||
@@ -7581,7 +7581,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
|||||||
final WindowState imeWin = mInputMethodWindow;
|
final WindowState imeWin = mInputMethodWindow;
|
||||||
final boolean imeVisible = imeWin != null && imeWin.isVisibleLw() && imeWin.isDisplayedLw();
|
final boolean imeVisible = imeWin != null && imeWin.isVisibleLw() && imeWin.isDisplayedLw();
|
||||||
final boolean dockVisible = isStackVisibleLocked(DOCKED_STACK_ID);
|
final boolean dockVisible = isStackVisibleLocked(DOCKED_STACK_ID);
|
||||||
final TaskStack imeTargetStack = getImeTargetStackLocked();
|
final TaskStack imeTargetStack = getImeFocusStackLocked();
|
||||||
final int imeDockSide = (dockVisible && imeTargetStack != null) ?
|
final int imeDockSide = (dockVisible && imeTargetStack != null) ?
|
||||||
imeTargetStack.getDockSide() : DOCKED_INVALID;
|
imeTargetStack.getDockSide() : DOCKED_INVALID;
|
||||||
final boolean imeOnTop = (imeDockSide == DOCKED_TOP);
|
final boolean imeOnTop = (imeDockSide == DOCKED_TOP);
|
||||||
@@ -7750,10 +7750,13 @@ public class WindowManagerService extends IWindowManager.Stub
|
|||||||
return mCurrentFocus;
|
return mCurrentFocus;
|
||||||
}
|
}
|
||||||
|
|
||||||
TaskStack getImeTargetStackLocked() {
|
TaskStack getImeFocusStackLocked() {
|
||||||
// Don't use WindowState.getStack() because it returns home stack for system windows.
|
// Don't use mCurrentFocus.getStack() because it returns home stack for system windows.
|
||||||
Task imeTask = mInputMethodTarget != null ? mInputMethodTarget.getTask() : null;
|
// Also don't use mInputMethodTarget's stack, because some window with FLAG_NOT_FOCUSABLE
|
||||||
return imeTask != null ? imeTask.mStack : null;
|
// and FLAG_ALT_FOCUSABLE_IM flags both set might be set to IME target so they're moved
|
||||||
|
// to make room for IME, but the window is not the focused window that's taking input.
|
||||||
|
return (mFocusedApp != null && mFocusedApp.mTask != null) ?
|
||||||
|
mFocusedApp.mTask.mStack : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showAuditSafeModeNotification() {
|
private void showAuditSafeModeNotification() {
|
||||||
|
|||||||
Reference in New Issue
Block a user