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

Commit 4f695092 authored by Amith Yamasani's avatar Amith Yamasani Committed by Android Git Automerger
Browse files

am 3e0c82ec: Fix for 2568664 : Slide gesture on spacebar is not reliable anymore

Merge commit '3e0c82ec' into froyo-plus-aosp

* commit '3e0c82ec':
  Fix for 2568664 : Slide gesture on spacebar is not reliable anymore
parents 443c360d 3e0c82ec
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -63,6 +63,8 @@ public class LatinKeyboardView extends KeyboardView {
    private boolean mDisableDisambiguation;
    /** The distance threshold at which we start treating the touch session as a multi-touch */
    private int mJumpThresholdSquare = Integer.MAX_VALUE;
    /** The y coordinate of the last row */
    private int mLastRowY;

    public LatinKeyboardView(Context context, AttributeSet attrs) {
        super(context, attrs);
@@ -82,6 +84,8 @@ public class LatinKeyboardView extends KeyboardView {
        // One-seventh of the keyboard width seems like a reasonable threshold
        mJumpThresholdSquare = k.getMinWidth() / 7;
        mJumpThresholdSquare *= mJumpThresholdSquare;
        // Assuming there are 4 rows, this is the coordinate of the last row
        mLastRowY = (k.getHeight() * 3) / 4;
        setKeyboardLocal(k);
    }

@@ -139,7 +143,11 @@ public class LatinKeyboardView extends KeyboardView {
        case MotionEvent.ACTION_MOVE:
            // Is this a big jump?
            final int distanceSquare = (mLastX - x) * (mLastX - x) + (mLastY - y) * (mLastY - y);
            if (distanceSquare > mJumpThresholdSquare) {
            // Check the distance and also if the move is not entirely within the bottom row
            // If it's only in the bottom row, it might be an intentional slide gesture
            // for language switching
            if (distanceSquare > mJumpThresholdSquare
                    && (mLastY < mLastRowY || y < mLastRowY)) {
                // If we're not yet dropping events, start dropping and send an UP event
                if (!mDroppingEvents) {
                    mDroppingEvents = true;