summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java b/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java
index 045a542..68fb786 100644
--- a/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java
+++ b/content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java
@@ -151,7 +151,12 @@ public class AdapterInputConnection extends BaseInputConnection {
}
Selection.setSelection(editable, selectionStart, selectionEnd);
- super.setComposingRegion(compositionStart, compositionEnd);
+
+ if (compositionStart == compositionEnd) {
+ removeComposingSpans(editable);
+ } else {
+ super.setComposingRegion(compositionStart, compositionEnd);
+ }
if (mIgnoreTextInputStateUpdates) return;
updateSelection(selectionStart, selectionEnd, compositionStart, compositionEnd);
@@ -380,7 +385,12 @@ public class AdapterInputConnection extends BaseInputConnection {
if (DEBUG) Log.w(TAG, "setComposingRegion [" + start + " " + end + "]");
int a = Math.min(start, end);
int b = Math.max(start, end);
- super.setComposingRegion(a, b);
+
+ if (a == b) {
+ removeComposingSpans(getEditable());
+ } else {
+ super.setComposingRegion(a, b);
+ }
return mImeAdapter.setComposingRegion(a, b);
}