diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/TypingHandler.java b/app/src/main/java/io/github/sspanak/tt9/ime/TypingHandler.java index 78849384..a3da33dd 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/TypingHandler.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/TypingHandler.java @@ -327,11 +327,8 @@ public abstract class TypingHandler extends KeyPadHandler { // If the cursor moves while composing a word (usually, because the user has touched the screen outside the word), we must // end typing end accept the word. Otherwise, the cursor would jump back at the end of the word, after the next key press. // This is confusing from user perspective, so we want to avoid it. - if ( - CursorOps.isMovedManually(newSelStart, newSelEnd, candidatesStart, candidatesEnd) - && !suggestionOps.isEmpty() - ) { - mInputMode.onAcceptSuggestion(suggestionOps.acceptIncomplete()); + if (CursorOps.isMovedManually(newSelStart, newSelEnd, candidatesStart, candidatesEnd)) { + mInputMode.onCursorMove(suggestionOps.acceptIncomplete()); } } diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/modes/InputMode.java b/app/src/main/java/io/github/sspanak/tt9/ime/modes/InputMode.java index 3f4e0001..e26270f8 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/modes/InputMode.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/modes/InputMode.java @@ -72,6 +72,7 @@ abstract public class InputMode { // Suggestions public void onAcceptSuggestion(@NonNull String word) { onAcceptSuggestion(word, false); } public void onAcceptSuggestion(@NonNull String word, boolean preserveWordList) {} + public void onCursorMove(@NonNull String word) { if (!digitSequence.isEmpty()) onAcceptSuggestion(word); } public void onReplaceSuggestion(@NonNull String word) {} /** diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeIdeograms.java b/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeIdeograms.java index 1890188e..189da899 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeIdeograms.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeIdeograms.java @@ -106,6 +106,12 @@ public class ModeIdeograms extends ModeWords { } + @Override public void onCursorMove(@NonNull String word) { + isFiltering = false; + super.onCursorMove(word); + } + + @Override public boolean shouldAcceptPreviousSuggestion(String s) { return