From 98dbfd4940fb7f1e3ae11ec73aeb7a9dd26a24ee Mon Sep 17 00:00:00 2001 From: Gilles Debunne Date: Mon, 24 Jan 2011 12:54:10 -0800 Subject: [PATCH] Non-editable TextViews should not display a cursor. Bug 3381320 The tests were inconsistent between makeBlink and onDraw. If the text is non-editable, do not draw the cursor. Change-Id: I0405e59444261a553e868b3ae5bdddd278f60bb2 --- core/java/android/widget/TextView.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index aac57edf7dff..dc6464315f1e 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -4334,7 +4334,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener selStart = getSelectionStart(); selEnd = getSelectionEnd(); - if ((mCursorVisible || mTextIsSelectable) && selStart >= 0 && isEnabled()) { + if ((isCursorVisible() || mTextIsSelectable) && selStart >= 0 && isEnabled()) { if (mHighlightPath == null) mHighlightPath = new Path(); @@ -6490,6 +6490,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener prepareCursorControllers(); } + private boolean isCursorVisible() { + return mCursorVisible && isTextEditable(); + } + private boolean canMarquee() { int width = (mRight - mLeft - getCompoundPaddingLeft() - getCompoundPaddingRight()); return width > 0 && mLayout.getLineWidth(0) > width; @@ -6978,7 +6982,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } private void makeBlink() { - if (!mCursorVisible || !isTextEditable()) { + if (!isCursorVisible()) { if (mBlink != null) { mBlink.removeCallbacks(mBlink); } @@ -7372,8 +7376,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener || windowParams.type > WindowManager.LayoutParams.LAST_SUB_WINDOW; } - mInsertionControllerEnabled = windowSupportsHandles && isTextEditable() && mCursorVisible && - mLayout != null; + mInsertionControllerEnabled = windowSupportsHandles && isCursorVisible() && mLayout != null; mSelectionControllerEnabled = windowSupportsHandles && textCanBeSelected() && mLayout != null; -- 2.11.0