diff options
| author | 2011-12-20 10:46:42 -0800 | |
|---|---|---|
| committer | 2011-12-20 10:46:42 -0800 | |
| commit | cd76a4da3e95ae213b6a25418f43ff57d905ce2e (patch) | |
| tree | 1c829e9ef69d347bc1a047f46635a2945e7d57a7 | |
| parent | d02c5dfd8dac526ec3c74e2c160835aa2c9d19c9 (diff) | |
| parent | 545c4d44389f189f7dda68f8e0f54d3b90ad98a6 (diff) | |
Merge "Rationalize blinking cursor test."
| -rw-r--r-- | core/java/android/widget/TextView.java | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index a1780873de38..81fc069acaf3 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -1202,14 +1202,17 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener imm.hideSoftInputFromWindow(getWindowToken(), 0); } } + super.setEnabled(enabled); - prepareCursorControllers(); + if (enabled) { // Make sure IME is updated with current editor info. InputMethodManager imm = InputMethodManager.peekInstance(); if (imm != null) imm.restartInput(this); } + prepareCursorControllers(); + // start or stop the cursor blinking as appropriate makeBlink(); } @@ -8581,7 +8584,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener * @return True when the TextView isFocused and has a valid zero-length selection (cursor). */ private boolean shouldBlink() { - if (!isFocused()) return false; + if (!isCursorVisible() || !isFocused()) return false; final int start = getSelectionStart(); if (start < 0) return false; @@ -8593,13 +8596,11 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } private void makeBlink() { - if (isCursorVisible()) { - if (shouldBlink()) { - mShowCursor = SystemClock.uptimeMillis(); - if (mBlink == null) mBlink = new Blink(this); - mBlink.removeCallbacks(mBlink); - mBlink.postAtTime(mBlink, mShowCursor + BLINK); - } + if (shouldBlink()) { + mShowCursor = SystemClock.uptimeMillis(); + if (mBlink == null) mBlink = new Blink(this); + mBlink.removeCallbacks(mBlink); + mBlink.postAtTime(mBlink, mShowCursor + BLINK); } else { if (mBlink != null) mBlink.removeCallbacks(mBlink); } |