diff options
| author | 2010-10-20 16:46:52 -0700 | |
|---|---|---|
| committer | 2010-10-20 16:46:52 -0700 | |
| commit | 5d919b4387488d2420cb14b4f9ba3fd158efa3cc (patch) | |
| tree | 923388f8bcf288ec041d3d34ab09fc42d2675bb2 | |
| parent | 5bfef1ba0501e237b3a0fa1abe98e5348d8c5b04 (diff) | |
| parent | 042856c1de6cdce854641aaecd68a689c5ba64f3 (diff) | |
Merge "Make disabled TextViews uneditable"
| -rw-r--r-- | core/java/android/widget/TextView.java | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index e6ed70ae3bf3..05db26683ac8 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -944,6 +944,22 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener setTypeface(tf, styleIndex); } + @Override + public void setEnabled(boolean enabled) { + if (enabled == isEnabled()) { + return; + } + + if (!enabled) { + // Hide the soft input if the currently active TextView is disabled + InputMethodManager imm = InputMethodManager.peekInstance(); + if (imm != null && imm.isActive(this)) { + imm.hideSoftInputFromWindow(getWindowToken(), 0); + } + } + super.setEnabled(enabled); + } + /** * Sets the typeface and style in which the text should be displayed, * and turns on the fake bold and italic bits in the Paint if the @@ -4436,7 +4452,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } @Override public InputConnection onCreateInputConnection(EditorInfo outAttrs) { - if (onCheckIsTextEditor()) { + if (onCheckIsTextEditor() && isEnabled()) { if (mInputMethodState == null) { mInputMethodState = new InputMethodState(); } @@ -6575,7 +6591,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener return superResult; } - if ((mMovement != null || onCheckIsTextEditor()) && mText instanceof Spannable && mLayout != null) { + if ((mMovement != null || onCheckIsTextEditor()) && isEnabled() + && mText instanceof Spannable && mLayout != null) { boolean handled = false; |