From 4b74f4de64806f1d98d9fca172b63fb1daab3b14 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Wed, 27 Apr 2016 18:44:08 -0700 Subject: [PATCH] Fix IME adjustment for voice interaction windows Bug: 28344950 Change-Id: I42fa7abe28a693bc22c878c75839af4ef03e5e8a --- .../server/policy/PhoneWindowManager.java | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index df74ed1a43b52..827ea5b5be09e 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -4317,11 +4317,25 @@ public class PhoneWindowManager implements WindowManagerPolicy { pf.top = df.top = of.top = mUnrestrictedScreenTop; pf.right = df.right = of.right = mUnrestrictedScreenLeft + mUnrestrictedScreenWidth; pf.bottom = df.bottom = of.bottom = mUnrestrictedScreenTop + mUnrestrictedScreenHeight; - cf.bottom = vf.bottom = mStableBottom; - // Note: In Phone landscape mode, the button bar should also be excluded. - cf.right = vf.right = mStableRight; - cf.left = vf.left = mStableLeft; - cf.top = vf.top = mStableTop; + if (adjust != SOFT_INPUT_ADJUST_RESIZE) { + cf.left = mDockLeft; + cf.top = mDockTop; + cf.right = mDockRight; + cf.bottom = mDockBottom; + } else { + cf.left = mContentLeft; + cf.top = mContentTop; + cf.right = mContentRight; + cf.bottom = mContentBottom; + } + if (adjust != SOFT_INPUT_ADJUST_NOTHING) { + vf.left = mCurLeft; + vf.top = mCurTop; + vf.right = mCurRight; + vf.bottom = mCurBottom; + } else { + vf.set(cf); + } } else if (win == mStatusBar) { pf.left = df.left = of.left = mUnrestrictedScreenLeft; pf.top = df.top = of.top = mUnrestrictedScreenTop;