am d2d630b1: am d9ec29f6: fix text area insertion order, partially

Merge commit 'd2d630b1b5c20a9e3d223595566def35c1175ca9'

* commit 'd2d630b1b5c20a9e3d223595566def35c1175ca9':
  fix text area insertion order, partially
This commit is contained in:
Cary Clark
2009-10-22 12:39:30 -07:00
committed by Android Git Automerger
2 changed files with 6 additions and 4 deletions

View File

@@ -88,6 +88,7 @@ import java.util.ArrayList;
// happens, the next time the user hits a key it is okay for the focus
// pointer to not match the WebTextView's node pointer
boolean mOkayForFocusNotToMatch;
boolean mResendKeyDown;
// Whether or not a selection change was generated from webkit. If it was,
// we do not need to pass the selection back to webkit.
private boolean mFromWebKit;
@@ -136,10 +137,9 @@ import java.util.ArrayList;
isArrowKey = true;
break;
}
if (!isArrowKey && !mOkayForFocusNotToMatch
if (!isArrowKey && !mOkayForFocusNotToMatch && !mResendKeyDown
&& mWebView.nativeFocusNodePointer() != mNodePointer) {
if (mWebView.nativeCursorNodePointer() == mNodePointer) {
// remove cursor so character doesn't go back to this view
if (mWebView.nativeFocusNodePointer() != 0) {
mWebView.nativeClearCursor();
}
// Do not call remove() here, which hides the soft keyboard. If
@@ -152,7 +152,7 @@ import java.util.ArrayList;
// After a jump to next textfield and the first key press, the cursor
// and focus will once again match, so reset this value.
mOkayForFocusNotToMatch = false;
mResendKeyDown = false;
Spannable text = (Spannable) getText();
int oldLength = text.length();
// Normally the delete key's dom events are sent via onTextChanged.

View File

@@ -3380,6 +3380,7 @@ public class WebView extends AbsoluteLayout
rebuildWebTextView();
// Now we need to pass the event to it
if (inEditingMode()) {
mWebTextView.mResendKeyDown = true;
return mWebTextView.onKeyDown(keyCode, event);
}
} else if (nativeHasFocusNode()) {
@@ -4950,6 +4951,7 @@ public class WebView extends AbsoluteLayout
int select = nativeFocusCandidateIsTextField() ?
nativeFocusCandidateMaxLength() : 0;
setSelection(select, select);
mWebTextView.mOkayForFocusNotToMatch = false; // only once
}
}
WebViewCore.JSKeyData arg = new WebViewCore.JSKeyData();