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

Commit 9f18132a authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi Committed by Android (Google) Code Review
Browse files

Merge "Fix: Cursor can be at an invalid offset in EditText."

parents 790c50f9 00ad16d1
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -1115,13 +1115,18 @@ public abstract class Layout {
     */
    public int getOffsetForHorizontal(int line, float horiz) {
        // TODO: use Paint.getOffsetForAdvance to avoid binary search
        int max = getLineEnd(line) - 1;
        int min = getLineStart(line);
        final int lineEndOffset = getLineEnd(line);
        final int max;
        if (line == getLineCount() - 1) {
            max = lineEndOffset;
        } else {
            max = mPaint.getTextRunCursor(mText, 0, mText.length(),
                    isRtlCharAt(lineEndOffset) ? Paint.DIRECTION_RTL : Paint.DIRECTION_LTR,
                    lineEndOffset, Paint.CURSOR_BEFORE);
        }
        final int min = getLineStart(line);
        Directions dirs = getLineDirections(line);

        if (line == getLineCount() - 1)
            max++;

        int best = min;
        float bestdist = Math.abs(getPrimaryHorizontal(best) - horiz);