set the selection after sending a click

Webkit expects the currently focused text input to have
a set selection before it can receive key events for insertion.

Coincidentally, we always set the selection except when
using the 'next' button on the IME to switch between text fields.

The selection has to be set after the text field receives
focus, so add a setSelection() message after the click() message
is sent in passToJavaScript().

fixes http://b/issue?id=2087546
This commit is contained in:
Cary Clark
2009-09-24 16:25:25 -04:00
parent f22fc124ff
commit f18c539344

View File

@@ -4766,6 +4766,9 @@ public class WebView extends AbsoluteLayout
/* package */ void passToJavaScript(String currentText, KeyEvent event) { /* package */ void passToJavaScript(String currentText, KeyEvent event) {
if (nativeCursorWantsKeyEvents() && !nativeCursorMatchesFocus()) { if (nativeCursorWantsKeyEvents() && !nativeCursorMatchesFocus()) {
mWebViewCore.sendMessage(EventHub.CLICK); mWebViewCore.sendMessage(EventHub.CLICK);
int select = nativeFocusCandidateIsTextField() ?
nativeFocusCandidateMaxLength() : 0;
setSelection(select, select);
} }
WebViewCore.JSKeyData arg = new WebViewCore.JSKeyData(); WebViewCore.JSKeyData arg = new WebViewCore.JSKeyData();
arg.mEvent = event; arg.mEvent = event;