summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/webkit/WebTextView.java24
-rw-r--r--core/java/android/webkit/WebView.java2
2 files changed, 23 insertions, 3 deletions
diff --git a/core/java/android/webkit/WebTextView.java b/core/java/android/webkit/WebTextView.java
index 28b095191839..0f24edc9e756 100644
--- a/core/java/android/webkit/WebTextView.java
+++ b/core/java/android/webkit/WebTextView.java
@@ -26,14 +26,15 @@ import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
+import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
+import android.os.ResultReceiver;
import android.text.BoringLayout.Metrics;
import android.text.DynamicLayout;
import android.text.Editable;
import android.text.InputFilter;
import android.text.Layout;
-import android.text.Layout.Alignment;
import android.text.Selection;
import android.text.Spannable;
import android.text.TextPaint;
@@ -136,6 +137,23 @@ import junit.framework.Assert;
// Used to determine whether onFocusChanged was called as a result of
// calling remove().
private boolean mInsideRemove;
+ private class MyResultReceiver extends ResultReceiver {
+ @Override
+ protected void onReceiveResult(int resultCode, Bundle resultData) {
+ if (resultCode == InputMethodManager.RESULT_SHOWN
+ && mWebView != null) {
+ mWebView.revealSelection();
+ }
+ }
+
+ /**
+ * @param handler
+ */
+ public MyResultReceiver(Handler handler) {
+ super(handler);
+ }
+ }
+ private MyResultReceiver mReceiver;
// Types used with setType. Keep in sync with CachedInput.h
private static final int NORMAL_TEXT_FIELD = 0;
@@ -184,7 +202,7 @@ import junit.framework.Assert;
}
}
};
-
+ mReceiver = new MyResultReceiver(mHandler);
}
public void setAutoFillable(int queryId) {
@@ -362,6 +380,8 @@ import junit.framework.Assert;
}
}
+ /* package */ ResultReceiver getResultReceiver() { return mReceiver; }
+
/**
* Determine whether this WebTextView currently represents the node
* represented by ptr.
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 9b1f157d9c72..94bc5447727b 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -4279,7 +4279,7 @@ public class WebView extends AbsoluteLayout
if (isTextView) {
rebuildWebTextView();
if (inEditingMode()) {
- imm.showSoftInput(mWebTextView, 0);
+ imm.showSoftInput(mWebTextView, 0, mWebTextView.getResultReceiver());
if (zoom) {
didUpdateWebTextViewDimensions(INTERSECTS_SCREEN);
}