Merge "Don't allow pinned window to be IME target" into rvc-dev
This commit is contained in:
@@ -2339,6 +2339,10 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (inPinnedWindowingMode()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
final boolean windowsAreFocusable = mActivityRecord == null || mActivityRecord.windowsAreFocusable();
|
final boolean windowsAreFocusable = mActivityRecord == null || mActivityRecord.windowsAreFocusable();
|
||||||
if (!windowsAreFocusable) {
|
if (!windowsAreFocusable) {
|
||||||
// This window can't be an IME target if the app's windows should not be focusable.
|
// 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.ACTIVITY_TYPE_STANDARD;
|
||||||
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
|
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.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
|
||||||
import static android.hardware.camera2.params.OutputConfiguration.ROTATION_90;
|
import static android.hardware.camera2.params.OutputConfiguration.ROTATION_90;
|
||||||
import static android.view.InsetsState.ITYPE_STATUS_BAR;
|
import static android.view.InsetsState.ITYPE_STATUS_BAR;
|
||||||
@@ -244,6 +245,12 @@ public class WindowStateTests extends WindowTestsBase {
|
|||||||
appWindow.mAttrs.flags &= ~FLAG_NOT_FOCUSABLE;
|
appWindow.mAttrs.flags &= ~FLAG_NOT_FOCUSABLE;
|
||||||
assertTrue(appWindow.canBeImeTarget());
|
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
|
// Make windows invisible
|
||||||
appWindow.hideLw(false /* doAnimation */);
|
appWindow.hideLw(false /* doAnimation */);
|
||||||
imeWindow.hideLw(false /* doAnimation */);
|
imeWindow.hideLw(false /* doAnimation */);
|
||||||
|
|||||||
Reference in New Issue
Block a user