Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c16e6dfd authored by Taran Singh's avatar Taran Singh
Browse files

Handle IME when target moves between splits

Handle split-screen IME when target window is launched in secondary
from primary split.
By comparing actual InputMethod's input target to the window requesting
IME window, we can allow showInsets(ime()).

Fix: 159576146
Test: atest ImeInsetsSourceProviderTest
Change-Id: Ife4137cc84eba99cf4f6e2f3957f13dcb95818c9
parent 71f959be
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -138,6 +138,7 @@ class ImeInsetsSourceProvider extends InsetsSourceProvider {
                        && dcTarget.getParentWindow() == mImeTargetFromIme
                        && dcTarget.mSubLayer > mImeTargetFromIme.getWindow().mSubLayer)
                || mImeTargetFromIme == mDisplayContent.getImeFallback()
                || mImeTargetFromIme == mDisplayContent.mInputMethodInputTarget
                || controlTarget == mImeTargetFromIme
                        && (mImeTargetFromIme.getWindow() == null
                                || !mImeTargetFromIme.getWindow().isClosing());
+8 −0
Original line number Diff line number Diff line
@@ -56,4 +56,12 @@ public class ImeInsetsSourceProviderTest extends WindowTestsBase {
        mImeProvider.scheduleShowImePostLayout(appWin);
        assertTrue(mImeProvider.isImeTargetFromDisplayContentAndImeSame());
    }

    @Test
    public void testInputMethodInputTargetCanShowIme() {
        WindowState target = createWindow(null, TYPE_APPLICATION, "app");
        mDisplayContent.mInputMethodTarget = target;
        mImeProvider.scheduleShowImePostLayout(target);
        assertTrue(mImeProvider.isImeTargetFromDisplayContentAndImeSame());
    }
}