Chromium Code Reviews| 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 de9f9cce77fdea84ce6f403d65421ea9443a6b78..163f5998be5124f65e53a72bea5ad302a9057a07 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 |
| @@ -8,7 +8,6 @@ import android.os.SystemClock; |
| import android.text.Editable; |
| import android.text.InputType; |
| import android.text.Selection; |
| -import android.text.TextUtils; |
| import android.util.Log; |
| import android.view.KeyEvent; |
| import android.view.View; |
| @@ -139,6 +138,7 @@ public class AdapterInputConnection extends BaseInputConnection { |
| Log.w(TAG, "updateState [" + text + "] [" + selectionStart + " " + selectionEnd + "] [" |
| + compositionStart + " " + compositionEnd + "] [" + isNonImeChange + "]"); |
| } |
| + |
|
aurimas (slooooooooow)
2014/07/22 16:25:43
Undo this new line change.
bcwhite
2014/07/22 17:28:33
Done.
|
| // If this update is from the IME, no further state modification is necessary because the |
| // state should have been updated already by the IM framework directly. |
| if (!isNonImeChange) return; |
| @@ -213,7 +213,6 @@ public class AdapterInputConnection extends BaseInputConnection { |
| @Override |
| public boolean setComposingText(CharSequence text, int newCursorPosition) { |
| if (DEBUG) Log.w(TAG, "setComposingText [" + text + "] [" + newCursorPosition + "]"); |
| - if (maybePerformEmptyCompositionWorkaround(text)) return true; |
| super.setComposingText(text, newCursorPosition); |
| updateSelectionIfRequired(); |
| return mImeAdapter.checkCompositionQueueAndCallNative(text, newCursorPosition, false); |
| @@ -225,7 +224,6 @@ public class AdapterInputConnection extends BaseInputConnection { |
| @Override |
| public boolean commitText(CharSequence text, int newCursorPosition) { |
| if (DEBUG) Log.w(TAG, "commitText [" + text + "] [" + newCursorPosition + "]"); |
| - if (maybePerformEmptyCompositionWorkaround(text)) return true; |
| super.commitText(text, newCursorPosition); |
| updateSelectionIfRequired(); |
| return mImeAdapter.checkCompositionQueueAndCallNative(text, newCursorPosition, |
| @@ -460,7 +458,12 @@ public class AdapterInputConnection extends BaseInputConnection { |
| super.setComposingRegion(a, b); |
| } |
| updateSelectionIfRequired(); |
| - return mImeAdapter.setComposingRegion(a, b); |
| + |
| + CharSequence regionText = null; |
| + if (b > a) { |
| + regionText = mEditable.subSequence(start, end); |
| + } |
| + return mImeAdapter.setComposingRegion(regionText, a, b); |
| } |
| boolean isActive() { |
| @@ -471,33 +474,6 @@ public class AdapterInputConnection extends BaseInputConnection { |
| return mImeAdapter.getInputMethodManagerWrapper(); |
| } |
| - /** |
| - * This method works around the issue crbug.com/373934 where Blink does not cancel |
| - * the composition when we send a commit with the empty text. |
| - * |
| - * TODO(aurimas) Remove this once crbug.com/373934 is fixed. |
| - * |
| - * @param text Text that software keyboard requested to commit. |
| - * @return Whether the workaround was performed. |
| - */ |
| - private boolean maybePerformEmptyCompositionWorkaround(CharSequence text) { |
|
aurimas (slooooooooow)
2014/07/22 16:25:43
I was under impression that you did not want to re
bcwhite
2014/07/22 17:28:33
I wasn't going to. But apparently I must have tri
aurimas (slooooooooow)
2014/07/22 17:48:10
Let's land it as a separate CL in case it needs to
|
| - int selectionStart = Selection.getSelectionStart(mEditable); |
| - int selectionEnd = Selection.getSelectionEnd(mEditable); |
| - int compositionStart = getComposingSpanStart(mEditable); |
| - int compositionEnd = getComposingSpanEnd(mEditable); |
| - if (TextUtils.isEmpty(text) && (selectionStart == selectionEnd) |
| - && compositionStart != INVALID_COMPOSITION |
| - && compositionEnd != INVALID_COMPOSITION) { |
| - beginBatchEdit(); |
| - finishComposingText(); |
| - int selection = Selection.getSelectionStart(mEditable); |
| - deleteSurroundingText(selection - compositionStart, selection - compositionEnd); |
| - endBatchEdit(); |
| - return true; |
| - } |
| - return false; |
| - } |
| - |
| @VisibleForTesting |
| static class ImeState { |
| public final String text; |