Merge "Fix wrong check in DC#needsRelativeLayeringToIme" into sc-v2-dev am: 7993070008 am: c1c941d38c

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15990502

Change-Id: Ibe515c7a0c2e6e0c041013711dc1f7782c8216fc
This commit is contained in:
Ming-Shin Lu
2021-10-07 01:34:40 +00:00
committed by Automerger Merge Worker
2 changed files with 7 additions and 7 deletions

View File

@@ -3784,7 +3784,11 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
}
boolean shouldImeAttachedToApp() {
return isImeControlledByApp()
// Force attaching IME to the display when magnifying, or it would be magnified with
// target app together.
final boolean allowAttachToApp = (mMagnificationSpec == null);
return allowAttachToApp && isImeControlledByApp()
&& mImeLayeringTarget != null
&& mImeLayeringTarget.mActivityRecord != null
&& mImeLayeringTarget.getWindowingMode() == WINDOWING_MODE_FULLSCREEN
@@ -4122,14 +4126,10 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
*/
@VisibleForTesting
SurfaceControl computeImeParent() {
// Force attaching IME to the display when magnifying, or it would be magnified with
// target app together.
final boolean allowAttachToApp = (mMagnificationSpec == null);
// Attach it to app if the target is part of an app and such app is covering the entire
// screen. If it's not covering the entire screen the IME might extend beyond the apps
// bounds.
if (allowAttachToApp && shouldImeAttachedToApp()) {
if (shouldImeAttachedToApp()) {
if (mImeLayeringTarget.mActivityRecord != mImeInputTarget.mActivityRecord) {
// Do not change parent if the window hasn't requested IME.
return null;

View File

@@ -5596,7 +5596,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
// elevating the IME and windows above it's target above the docked divider in
// split-screen, or make the popupMenu to be above the IME when the parent window is the
// IME layering target in bubble/freeform mode.
if (mDisplayContent.isImeAttachedToApp()) {
if (mDisplayContent.shouldImeAttachedToApp()) {
return false;
}