Index: content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java |
diff --git a/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java b/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java |
index 1126a8040b0798b581ada643248e9ef4208629d0..d85273be9f59e92ddf388eeab157d6da9d7be89a 100644 |
--- a/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java |
+++ b/content/public/android/java/src/org/chromium/content/browser/input/ImeAdapter.java |
@@ -407,7 +407,15 @@ public class ImeAdapter { |
*/ |
boolean deleteSurroundingText(int beforeLength, int afterLength) { |
if (mNativeImeAdapterAndroid == 0) return false; |
+ // Can't send the deletion key code yet because it will delete an extra char at the end. |
+ // Also the deleteSurroundingText message is not always ordered properly with key event |
+ // messages yet. |
+ // TODO(guohui): fix the ordering and send the deletion key code for single-char deletion. |
+ sendSyntheticKeyEvent( |
+ sEventTypeRawKeyDown, SystemClock.uptimeMillis(), KeyEvent.KEYCODE_UNKNOWN, 0); |
nativeDeleteSurroundingText(mNativeImeAdapterAndroid, beforeLength, afterLength); |
+ sendSyntheticKeyEvent( |
+ sEventTypeKeyUp, SystemClock.uptimeMillis(), KeyEvent.KEYCODE_UNKNOWN, 0); |
return true; |
} |