summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-06-22 14:31:21 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-06-22 14:31:21 -0700
commite146d824785078fed578f88b11ff47a7390d27c5 (patch)
tree5f21d01b82a84f027295792af801cf8bc9ddf3b4 /core
parent72be40490951d3f9d0ada16fcf5288d0c3306d88 (diff)
parenta465a170ce5d7155580fd308d1e50092365117e4 (diff)
downloadframeworks_base-e146d824785078fed578f88b11ff47a7390d27c5.zip
frameworks_base-e146d824785078fed578f88b11ff47a7390d27c5.tar.gz
frameworks_base-e146d824785078fed578f88b11ff47a7390d27c5.tar.bz2
Merge change 4965 into donut
* changes: Fix bugs 1827027, 1808979, 1820700.
Diffstat (limited to 'core')
-rw-r--r--core/java/android/view/inputmethod/BaseInputConnection.java16
-rw-r--r--core/java/android/widget/TextView.java7
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 11de3e2..9a0f467 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 1678f9a..9479f9e 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);
}
}