Remove the WebTextView if it is drawing when it shouldn't.

Bug 2614064

Change-Id: Id5d0a27e862bb783299f6fa4863221a27318f52c
This commit is contained in:
Leon Scroggins
2010-04-22 16:27:21 -04:00
parent a6ece18d95
commit 69ec5c22d0
2 changed files with 19 additions and 2 deletions

View File

@@ -300,6 +300,23 @@ import java.util.ArrayList;
return connection;
}
@Override
protected void onDraw(Canvas canvas) {
// onDraw should only be called for password fields. If WebTextView is
// still drawing, but is no longer corresponding to a password field,
// remove it.
if (mWebView == null || !mWebView.nativeFocusCandidateIsPassword()
|| !isSameTextField(mWebView.nativeFocusCandidatePointer())) {
// Although calling remove() would seem to make more sense here,
// changing it to not be a password field will make it not draw.
// Other code will make sure that it is removed completely, but this
// way the user will not see it.
setInPassword(false);
} else {
super.onDraw(canvas);
}
}
@Override
public void onEditorAction(int actionCode) {
switch (actionCode) {

View File

@@ -7256,13 +7256,13 @@ public class WebView extends AbsoluteLayout
private native void nativeFindNext(boolean forward);
/* package */ native int nativeFocusCandidateFramePointer();
/* package */ native boolean nativeFocusCandidateHasNextTextfield();
private native boolean nativeFocusCandidateIsPassword();
/* package */ native boolean nativeFocusCandidateIsPassword();
private native boolean nativeFocusCandidateIsRtlText();
private native boolean nativeFocusCandidateIsTextInput();
/* package */ native int nativeFocusCandidateMaxLength();
/* package */ native String nativeFocusCandidateName();
private native Rect nativeFocusCandidateNodeBounds();
private native int nativeFocusCandidatePointer();
/* package */ native int nativeFocusCandidatePointer();
private native String nativeFocusCandidateText();
private native int nativeFocusCandidateTextSize();
/**