Merge "Fix stuck IME when IME dialog is focused" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
a13d349172
@@ -2170,6 +2170,9 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
|||||||
if (isInputMethodTarget()) {
|
if (isInputMethodTarget()) {
|
||||||
dc.computeImeTarget(true /* updateImeTarget */);
|
dc.computeImeTarget(true /* updateImeTarget */);
|
||||||
}
|
}
|
||||||
|
if (dc.mInputMethodInputTarget == this) {
|
||||||
|
dc.setInputMethodInputTarget(null);
|
||||||
|
}
|
||||||
if (dc.mInputMethodControlTarget == this) {
|
if (dc.mInputMethodControlTarget == this) {
|
||||||
dc.updateImeControlTarget();
|
dc.updateImeControlTarget();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -889,6 +889,21 @@ public class DisplayContentTests extends WindowTestsBase {
|
|||||||
assertEquals(dc.getImeContainer().getParentSurfaceControl(), dc.computeImeParent());
|
assertEquals(dc.getImeContainer().getParentSurfaceControl(), dc.computeImeParent());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testInputMethodInputTarget_isClearedWhenWindowStateIsRemoved() throws Exception {
|
||||||
|
final DisplayContent dc = createNewDisplay();
|
||||||
|
|
||||||
|
WindowState app = createWindow(null, TYPE_BASE_APPLICATION, dc, "app");
|
||||||
|
|
||||||
|
dc.mInputMethodInputTarget = app;
|
||||||
|
assertEquals(app, dc.computeImeControlTarget());
|
||||||
|
|
||||||
|
app.removeImmediately();
|
||||||
|
|
||||||
|
assertNull(dc.mInputMethodInputTarget);
|
||||||
|
assertNull(dc.computeImeControlTarget());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testComputeImeControlTarget() throws Exception {
|
public void testComputeImeControlTarget() throws Exception {
|
||||||
final DisplayContent dc = createNewDisplay();
|
final DisplayContent dc = createNewDisplay();
|
||||||
|
|||||||
Reference in New Issue
Block a user