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

Commit 78cab5a5 authored by Mihai Popa's avatar Mihai Popa Committed by Android (Google) Code Review
Browse files

Merge "[Magnifier-23] Fix invisible cursor in magnifier"

parents 756d00b9 a4e39c4f
Loading
Loading
Loading
Loading
+19 −2
Original line number Diff line number Diff line
@@ -262,7 +262,8 @@ public class Editor {
    boolean mDiscardNextActionUp;
    boolean mIgnoreActionUpEvent;

    long mShowCursor;
    private long mShowCursor;
    private boolean mRenderCursorRegardlessTiming;
    private Blink mBlink;

    boolean mCursorVisible = true;
@@ -681,11 +682,22 @@ public class Editor {
        }
    }

    boolean isCursorVisible() {
    private boolean isCursorVisible() {
        // The default value is true, even when there is no associated Editor
        return mCursorVisible && mTextView.isTextEditable();
    }

    boolean shouldRenderCursor() {
        if (!isCursorVisible()) {
            return false;
        }
        if (mRenderCursorRegardlessTiming) {
            return true;
        }
        final long showCursorDelta = SystemClock.uptimeMillis() - mShowCursor;
        return showCursorDelta % (2 * BLINK) < BLINK;
    }

    void prepareCursorControllers() {
        boolean windowSupportsHandles = false;

@@ -4666,13 +4678,18 @@ public class Editor {
                    + mTextView.getLayout().getLineBottom(lineNumber)) / 2.0f
                    + mTextView.getTotalPaddingTop() - mTextView.getScrollY();

            // Make the cursor visible and stop blinking.
            mRenderCursorRegardlessTiming = true;
            mTextView.invalidateCursorPath();
            suspendBlink();

            mMagnifier.show(xPosInView, yPosInView);
        }

        protected final void dismissMagnifier() {
            if (mMagnifier != null) {
                mMagnifier.dismiss();
                mRenderCursorRegardlessTiming = false;
                resumeBlink();
            }
        }
+1 −3
Original line number Diff line number Diff line
@@ -6994,9 +6994,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
        final int selEnd = getSelectionEnd();
        if (mMovement != null && (isFocused() || isPressed()) && selStart >= 0) {
            if (selStart == selEnd) {
                if (mEditor != null && mEditor.isCursorVisible()
                        && (SystemClock.uptimeMillis() - mEditor.mShowCursor)
                        % (2 * Editor.BLINK) < Editor.BLINK) {
                if (mEditor != null && mEditor.shouldRenderCursor()) {
                    if (mHighlightPathBogus) {
                        if (mHighlightPath == null) mHighlightPath = new Path();
                        mHighlightPath.reset();