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

Commit 9c9a11f8 authored by Felix Stern's avatar Felix Stern Committed by Android Build Coastguard Worker
Browse files

Copy requestedImeVisible state also if stylus is used

By not copying the previous requested IME state when using stylus, InputMethodService#showSoftInput won't be called. In some cases, the IME was therefore stuck.

Fix: 384608941
Test: StylusHandwritingTest#testOnViewClicked_withStylusTap
Flag: android.view.inputmethod.refactor_insets_controller
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:35e062760ff8731630e55c2e234b78b5a2db1c5c)
Merged-In: Ie808e18a28b34c4c41eedc84a63c1e801ac1d4cc
Change-Id: Ie808e18a28b34c4c41eedc84a63c1e801ac1d4cc
parent 7b67cfb2
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -387,8 +387,9 @@ public final class ImeVisibilityStateComputer {
    @GuardedBy("ImfLock.class")
    void setWindowState(IBinder windowToken, @NonNull ImeTargetWindowState newState) {
        final ImeTargetWindowState state = mRequestWindowStateMap.get(windowToken);
        if (state != null && newState.hasEditorFocused()
                && newState.mToolType != MotionEvent.TOOL_TYPE_STYLUS) {
        if (state != null && newState.hasEditorFocused() && (
                newState.mToolType != MotionEvent.TOOL_TYPE_STYLUS
                        || Flags.refactorInsetsController())) {
            // Inherit the last requested IME visible state when the target window is still
            // focused with an editor.
            newState.setRequestedImeVisible(state.mRequestedImeVisible);