diff options
| author | 2009-06-22 14:31:21 -0700 | |
|---|---|---|
| committer | 2009-06-22 14:31:21 -0700 | |
| commit | e146d824785078fed578f88b11ff47a7390d27c5 (patch) | |
| tree | 5f21d01b82a84f027295792af801cf8bc9ddf3b4 | |
| parent | 72be40490951d3f9d0ada16fcf5288d0c3306d88 (diff) | |
| parent | a465a170ce5d7155580fd308d1e50092365117e4 (diff) | |
Merge change 4965 into donut
* changes:
Fix bugs 1827027, 1808979, 1820700.
| -rw-r--r-- | core/java/android/view/inputmethod/BaseInputConnection.java | 16 | ||||
| -rw-r--r-- | core/java/android/widget/TextView.java | 7 |
2 files changed, 17 insertions, 6 deletions
diff --git a/core/java/android/view/inputmethod/BaseInputConnection.java b/core/java/android/view/inputmethod/BaseInputConnection.java index 11de3e2ed433..9a0f467ee8c5 100644 --- a/core/java/android/view/inputmethod/BaseInputConnection.java +++ b/core/java/android/view/inputmethod/BaseInputConnection.java @@ -297,6 +297,10 @@ public class BaseInputConnection implements InputConnection { b = tmp; } + if (a <= 0) { + return ""; + } + if (length > a) { length = a; } @@ -488,12 +492,12 @@ public class BaseInputConnection implements InputConnection { } else { a = Selection.getSelectionStart(content); b = Selection.getSelectionEnd(content); - if (a >=0 && b>= 0 && a != b) { - if (b < a) { - int tmp = a; - a = b; - b = tmp; - } + if (a < 0) a = 0; + if (b < 0) b = 0; + if (b < a) { + int tmp = a; + a = b; + b = tmp; } } diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 1678f9a2cc6b..9479f9e9ce25 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -6469,6 +6469,13 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener protected void onReceiveResult(int resultCode, Bundle resultData) { if (resultCode != InputMethodManager.RESULT_SHOWN) { + final int len = mText.length(); + if (mNewStart > len) { + mNewStart = len; + } + if (mNewEnd > len) { + mNewEnd = len; + } Selection.setSelection((Spannable)mText, mNewStart, mNewEnd); } } |