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

Commit 1fb90497 authored by Gilles Debunne's avatar Gilles Debunne Committed by Android (Google) Code Review
Browse files

Merge "Text blinking cursor hard to see." into ics-mr1

parents 9c92fcd9 961ebb9a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -393,7 +393,7 @@ public class SpellChecker implements SpellCheckerSessionListener {
                SuggestionSpan.FLAG_EASY_CORRECT | SuggestionSpan.FLAG_MISSPELLED);
        editable.setSpan(suggestionSpan, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

        mTextView.invalidateRegion(start, end);
        mTextView.invalidateRegion(start, end, false /* No cursor involved */);
    }

    private class SpellParser {
+12 −4
Original line number Diff line number Diff line
@@ -339,7 +339,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener

    private int mCursorDrawableRes;
    private final Drawable[] mCursorDrawable = new Drawable[2];
    private int mCursorCount; // Actual current number of used mCursorDrawable: 0, 1 or 2
    private int mCursorCount; // Actual current number of used mCursorDrawable: 0, 1 or 2 (split)

    private Drawable mSelectHandleLeft;
    private Drawable mSelectHandleRight;
@@ -4322,7 +4322,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
        if (a >= 0 || b >= 0 || c >= 0) {
            int start = Math.min(Math.min(a, b), c);
            int end = Math.max(Math.max(a, b), c);
            invalidateRegion(start, end);
            invalidateRegion(start, end, true /* Also invalidates blinking cursor */);
        }
    }

@@ -4331,7 +4331,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
     *
     * @hide
     */
    void invalidateRegion(int start, int end) {
    void invalidateRegion(int start, int end, boolean invalidateCursor) {
        if (mLayout == null) {
            invalidate();
        } else {
@@ -4357,11 +4357,19 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener

                int bottom = mLayout.getLineBottom(lineEnd);

                if (invalidateCursor) {
                    for (int i = 0; i < mCursorCount; i++) {
                        Rect bounds = mCursorDrawable[i].getBounds();
                        top = Math.min(top, bounds.top);
                        bottom = Math.max(bottom, bounds.bottom);
                    }
                }

                final int compoundPaddingLeft = getCompoundPaddingLeft();
                final int verticalPadding = getExtendedPaddingTop() + getVerticalOffset(true);

                int left, right;
                if (lineStart == lineEnd) {
                if (lineStart == lineEnd && !invalidateCursor) {
                    left = (int) mLayout.getPrimaryHorizontal(start);
                    right = (int) (mLayout.getPrimaryHorizontal(end) + 1.0);
                    left += compoundPaddingLeft;