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

Commit 289aee90 authored by Justin Ghan's avatar Justin Ghan
Browse files

Fix cursor position after delete gesture

Deleting text inside a selection causes the selection to be updated
asynchronously, so setting the cursor position synchronously after the
deletion could get overwritten by the asynchronous update.

This is fixed by setting the cursor position before deleting the text.

Bug: 266984004
Test: tested manually
Change-Id: I8801cc0bc9d0a3acd7952e2a88691f480c58d453
parent 19b45e99
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -9957,8 +9957,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
                range = adjustHandwritingDeleteGestureRange(range);
            }
            getEditableText().delete(range[0], range[1]);
            Selection.setSelection(getEditableText(), range[0]);
            getEditableText().delete(range[0], range[1]);
        }
        return InputConnection.HANDWRITING_GESTURE_RESULT_SUCCESS;
    }
@@ -10162,8 +10162,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
            endOffset += Character.charCount(codePointAtEnd);
        }
        if (startOffset < endOffset) {
            getEditableText().delete(startOffset, endOffset);
            Selection.setSelection(getEditableText(), startOffset);
            getEditableText().delete(startOffset, endOffset);
            return InputConnection.HANDWRITING_GESTURE_RESULT_SUCCESS;
        } else {
            // No whitespace found, so insert a space.