Merge "Don't allow pinned window to be IME target" into rvc-dev am: 218e017d93
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11875421 Change-Id: Iaa05008515db5f8c1d3e653f900a31988f7dffd7
This commit is contained in:
@@ -2339,6 +2339,10 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
||||
return false;
|
||||
}
|
||||
|
||||
if (inPinnedWindowingMode()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final boolean windowsAreFocusable = mActivityRecord == null || mActivityRecord.windowsAreFocusable();
|
||||
if (!windowsAreFocusable) {
|
||||
// This window can't be an IME target if the app's windows should not be focusable.
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.android.server.wm;
|
||||
|
||||
import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
|
||||
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
|
||||
import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
|
||||
import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
|
||||
import static android.hardware.camera2.params.OutputConfiguration.ROTATION_90;
|
||||
import static android.view.InsetsState.ITYPE_STATUS_BAR;
|
||||
@@ -244,6 +245,12 @@ public class WindowStateTests extends WindowTestsBase {
|
||||
appWindow.mAttrs.flags &= ~FLAG_NOT_FOCUSABLE;
|
||||
assertTrue(appWindow.canBeImeTarget());
|
||||
|
||||
// Verify PINNED windows can't be IME target.
|
||||
int initialMode = appWindow.mActivityRecord.getWindowingMode();
|
||||
appWindow.mActivityRecord.setWindowingMode(WINDOWING_MODE_PINNED);
|
||||
assertFalse(appWindow.canBeImeTarget());
|
||||
appWindow.mActivityRecord.setWindowingMode(initialMode);
|
||||
|
||||
// Make windows invisible
|
||||
appWindow.hideLw(false /* doAnimation */);
|
||||
imeWindow.hideLw(false /* doAnimation */);
|
||||
|
||||
Reference in New Issue
Block a user