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 1ea57b4a105d086d732c319d68876474f895155f..354b24220c6ce2d07663d9ff6ca9cf89b8edb265 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 |
@@ -253,6 +253,9 @@ public class ImeAdapter { |
public void attach(int nativeImeAdapter, int textInputType, int selectionStart, |
int selectionEnd) { |
+ if (mNativeImeAdapterAndroid != 0) { |
+ nativeResetImeAdapter(mNativeImeAdapterAndroid); |
+ } |
mNativeImeAdapterAndroid = nativeImeAdapter; |
mTextInputType = textInputType; |
mInitialSelectionStart = selectionStart; |
@@ -266,6 +269,9 @@ public class ImeAdapter { |
* @param nativeImeAdapter The pointer to the native ImeAdapter object. |
*/ |
public void attach(int nativeImeAdapter) { |
+ if (mNativeImeAdapterAndroid != 0) { |
+ nativeResetImeAdapter(mNativeImeAdapterAndroid); |
+ } |
mNativeImeAdapterAndroid = nativeImeAdapter; |
if (nativeImeAdapter != 0) { |
nativeAttachImeAdapter(mNativeImeAdapterAndroid); |
@@ -569,4 +575,5 @@ public class ImeAdapter { |
private native void nativeCut(int nativeImeAdapterAndroid); |
private native void nativeCopy(int nativeImeAdapterAndroid); |
private native void nativePaste(int nativeImeAdapterAndroid); |
+ private native void nativeResetImeAdapter(int nativeImeAdapterAndroid); |
} |