Index: content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java |
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 045a54291d6bf7780321817c30a38325b8d589d7..68fb786f50974680e5d741cce6c88cea0519678e 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); |
} |