Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2136)

Unified Diff: content/public/android/java/src/org/chromium/content/browser/input/AdapterInputConnection.java

Issue 373523002: Send correct key-codes when doing composition events instead of always 0. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address review comments Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698