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

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

Issue 11914003: Start sending synthetic keyevents for enter and tab in Android IME (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 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/ImeAdapter.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/ImeAdapter.java b/content/public/android/java/src/org/chromium/content/browser/ImeAdapter.java
index 88f9578f731751adf0b262c3155a8aa4fa608839..1a70d66a96877f2d1394be348eb287fafa122fc7 100644
--- a/content/public/android/java/src/org/chromium/content/browser/ImeAdapter.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ImeAdapter.java
@@ -117,7 +117,6 @@ class ImeAdapter {
private int mNativeImeAdapterAndroid;
private int mTextInputType;
- private int mPreImeEventCount;
private Context mContext;
private SelectionHandleController mSelectionHandleController;
@@ -152,7 +151,6 @@ class ImeAdapter {
ImeAdapter(Context context, SelectionHandleController selectionHandleController,
InsertionHandleController insertionHandleController, ViewEmbedder embedder) {
- mPreImeEventCount = 0;
mContext = context;
mSelectionHandleController = selectionHandleController;
mInsertionHandleController = insertionHandleController;
@@ -302,14 +300,7 @@ class ImeAdapter {
return InputDialogContainer.isDialogInputType(mTextInputType);
}
- void dispatchKeyEventPreIme(KeyEvent event) {
- // We only register that a key was pressed, but we don't actually intercept
- // it.
- ++mPreImeEventCount;
- }
-
boolean dispatchKeyEvent(KeyEvent event) {
- mPreImeEventCount = 0;
return translateAndSendNativeEvents(event);
}
@@ -341,15 +332,16 @@ class ImeAdapter {
mInsertionHandleController.hideAndDisallowAutomaticShowing();
}
mViewEmbedder.onImeEvent(isFinish);
- boolean hasSingleChar = mPreImeEventCount == 1 && text.length() == 1;
- int keyCode = hasSingleChar ? text.codePointAt(0) : COMPOSITION_KEY_CODE;
- int keyChar = hasSingleChar ? text.codePointAt(0) : 0;
+ boolean hasSingleChar = text.length() == 1;
aurimas (slooooooooow) 2013/01/16 00:39:57 This is not needed anymore since shouldSendKeyEven
Yusuf 2013/01/16 08:07:57 Done.
+ int keyCode = shouldSendKeyEventWithKeyCode(text);
+ int keyChar = keyCode == COMPOSITION_KEY_CODE ? 0 : text.codePointAt(0);
long timeStampMs = System.currentTimeMillis();
+
nativeSendSyntheticKeyEvent(mNativeImeAdapterAndroid, sEventTypeRawKeyDown,
- timeStampMs, keyCode, keyChar);
- if (hasSingleChar) {
+ timeStampMs, keyCode, keyChar);
+ if (hasSingleChar && keyCode != COMPOSITION_KEY_CODE) {
nativeSendSyntheticKeyEvent(mNativeImeAdapterAndroid, sEventTypeChar,
- timeStampMs, text.codePointAt(0), text.codePointAt(0));
+ timeStampMs, keyCode, keyChar);
Ted C 2013/01/16 02:13:30 previously this sent the same two values...now you
Yusuf 2013/01/16 08:07:57 Sadly this part of the code never really worked fo
} else {
if (isCommit) {
nativeCommitText(mNativeImeAdapterAndroid, text);
@@ -359,10 +351,15 @@ class ImeAdapter {
}
nativeSendSyntheticKeyEvent(mNativeImeAdapterAndroid, sEventTypeKeyUp,
timeStampMs, keyCode, keyChar);
- mPreImeEventCount = 0;
return true;
}
+ private int shouldSendKeyEventWithKeyCode(String singleChar) {
aurimas (slooooooooow) 2013/01/16 00:39:57 Might not be a single char, should call it some ot
Yusuf 2013/01/16 08:07:57 Done.
+ if (singleChar.equals("\n")) return KeyEvent.KEYCODE_ENTER;
+ else if (singleChar.equals("\t")) return KeyEvent.KEYCODE_TAB;
+ else return COMPOSITION_KEY_CODE;
+ }
+
private boolean translateAndSendNativeEvents(KeyEvent event) {
if (mNativeImeAdapterAndroid == 0) {
return false;

Powered by Google App Engine
This is Rietveld 408576698