diff options
-rw-r--r-- | content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java | 14 |
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); } |