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

Commit afb35327 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Mini keyboard works even while shift is being pressed

Bug: 3038861
Change-Id: I94011ca80710ff6eb24e940104f7d9d3bb86840a
parent 6e5a3986
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -205,6 +205,7 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
    private long mMiniKeyboardPopupTime;
    private int[] mWindowOffset;
    private final float mMiniKeyboardSlideAllowance;
    private int mMiniKeyboardTrackerId;

    /** Listener for {@link OnKeyboardActionListener}. */
    private OnKeyboardActionListener mKeyboardActionListener;
@@ -1023,6 +1024,7 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
        if (result) {
            dismissKeyPreview();
            tracker.setAlreadyProcessed();
            mMiniKeyboardTrackerId = tracker.mPointerId;
        }
        return result;
    }
@@ -1258,9 +1260,15 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
        // Needs to be called after the gesture detector gets a turn, as it may have
        // displayed the mini keyboard
        if (mMiniKeyboard != null) {
            MotionEvent translated = generateMiniKeyboardMotionEvent(action, x, y, eventTime);
            final int miniKeyboardPointerIndex = me.findPointerIndex(mMiniKeyboardTrackerId);
            if (miniKeyboardPointerIndex >= 0 && miniKeyboardPointerIndex < pointerCount) {
                final int miniKeyboardX = (int)me.getX(miniKeyboardPointerIndex);
                final int miniKeyboardY = (int)me.getY(miniKeyboardPointerIndex);
                MotionEvent translated = generateMiniKeyboardMotionEvent(action,
                        miniKeyboardX, miniKeyboardY, eventTime);
                mMiniKeyboard.onTouchEvent(translated);
                translated.recycle();
            }
            return true;
        }

+3 −2
Original line number Diff line number Diff line
@@ -515,7 +515,8 @@ public class PointerTracker {
            int primaryCode = key.codes[0];
            code = String.format((primaryCode < 0) ? "%4d" : "0x%02x", primaryCode);
        }
        Log.d(TAG, String.format("%s [%d] %3d,%3d %3d(%s) %s", title, mPointerId, x, y, keyIndex,
                code, isModifier() ? "modifier" : ""));
        Log.d(TAG, String.format("%s%s[%d] %3d,%3d %3d(%s) %s", title,
                (mKeyAlreadyProcessed ? "-" : " "), mPointerId, x, y, keyIndex, code,
                (isModifier() ? "modifier" : "")));
    }
}