From 127e6308f95c94bd7f511510ef0874c9d73fa185 Mon Sep 17 00:00:00 2001 From: Aleksandras Kostarevas Date: Tue, 14 May 2024 18:26:43 -0500 Subject: [PATCH] Fix key sliding getting stuck on space and delete --- java/src/org/futo/inputmethod/keyboard/PointerTracker.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/java/src/org/futo/inputmethod/keyboard/PointerTracker.java b/java/src/org/futo/inputmethod/keyboard/PointerTracker.java index 6e602b0fa..630164d72 100644 --- a/java/src/org/futo/inputmethod/keyboard/PointerTracker.java +++ b/java/src/org/futo/inputmethod/keyboard/PointerTracker.java @@ -130,6 +130,7 @@ public final class PointerTracker implements PointerTrackerQueue.Element, private int mLastX; private int mLastY; + private boolean mIsSlidingCursor; private int mStartX; private int mStartY; private long mStartTime; @@ -702,6 +703,8 @@ public final class PointerTracker implements PointerTrackerQueue.Element, mStartX = x; mStartY = y; mStartTime = System.currentTimeMillis(); + + mIsSlidingCursor = key.getCode() == Constants.CODE_DELETE || key.getCode() == Constants.CODE_SPACE; } } @@ -904,7 +907,7 @@ public final class PointerTracker implements PointerTrackerQueue.Element, final int lastY = mLastY; final Key oldKey = mCurrentKey; - if (oldKey != null && oldKey.getCode() == Constants.CODE_SPACE) { + if (mIsSlidingCursor && oldKey != null && oldKey.getCode() == Constants.CODE_SPACE) { int steps = (x - mStartX) / sPointerStep; final int swipeIgnoreTime = Settings.getInstance().getCurrent().mKeyLongpressTimeout / MULTIPLIER_FOR_LONG_PRESS_TIMEOUT_IN_SLIDING_INPUT; if (steps != 0 && mStartTime + swipeIgnoreTime < System.currentTimeMillis()) { @@ -915,7 +918,7 @@ public final class PointerTracker implements PointerTrackerQueue.Element, return; } - if (oldKey != null && oldKey.getCode() == Constants.CODE_DELETE) { + if (mIsSlidingCursor && oldKey != null && oldKey.getCode() == Constants.CODE_DELETE) { int steps = (x - mStartX) / sPointerStep; if (steps != 0) { sTimerProxy.cancelKeyTimersOf(this);