Remove the WebTextView if it is drawing when it shouldn't.
Bug 2614064 Change-Id: Id5d0a27e862bb783299f6fa4863221a27318f52c
This commit is contained in:
@@ -300,6 +300,23 @@ import java.util.ArrayList;
|
|||||||
return connection;
|
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
|
@Override
|
||||||
public void onEditorAction(int actionCode) {
|
public void onEditorAction(int actionCode) {
|
||||||
switch (actionCode) {
|
switch (actionCode) {
|
||||||
|
|||||||
@@ -7256,13 +7256,13 @@ public class WebView extends AbsoluteLayout
|
|||||||
private native void nativeFindNext(boolean forward);
|
private native void nativeFindNext(boolean forward);
|
||||||
/* package */ native int nativeFocusCandidateFramePointer();
|
/* package */ native int nativeFocusCandidateFramePointer();
|
||||||
/* package */ native boolean nativeFocusCandidateHasNextTextfield();
|
/* package */ native boolean nativeFocusCandidateHasNextTextfield();
|
||||||
private native boolean nativeFocusCandidateIsPassword();
|
/* package */ native boolean nativeFocusCandidateIsPassword();
|
||||||
private native boolean nativeFocusCandidateIsRtlText();
|
private native boolean nativeFocusCandidateIsRtlText();
|
||||||
private native boolean nativeFocusCandidateIsTextInput();
|
private native boolean nativeFocusCandidateIsTextInput();
|
||||||
/* package */ native int nativeFocusCandidateMaxLength();
|
/* package */ native int nativeFocusCandidateMaxLength();
|
||||||
/* package */ native String nativeFocusCandidateName();
|
/* package */ native String nativeFocusCandidateName();
|
||||||
private native Rect nativeFocusCandidateNodeBounds();
|
private native Rect nativeFocusCandidateNodeBounds();
|
||||||
private native int nativeFocusCandidatePointer();
|
/* package */ native int nativeFocusCandidatePointer();
|
||||||
private native String nativeFocusCandidateText();
|
private native String nativeFocusCandidateText();
|
||||||
private native int nativeFocusCandidateTextSize();
|
private native int nativeFocusCandidateTextSize();
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user