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; |