Fix rebuildWebTextView issues
Bug: 5488135 Change-Id: I2df047b6de42dbe716008f69d720fa5fad3fe19d
This commit is contained in:
@@ -1090,6 +1090,7 @@ import junit.framework.Assert;
|
||||
setMaxLength(maxLength);
|
||||
setHorizontallyScrolling(single);
|
||||
setInputType(inputType);
|
||||
clearComposingText();
|
||||
setImeOptions(imeOptions);
|
||||
setVisibility(VISIBLE);
|
||||
if (!autoComplete) {
|
||||
|
||||
@@ -4798,16 +4798,7 @@ public class WebView extends AbsoluteLayout
|
||||
mTextGeneration = 0;
|
||||
}
|
||||
mWebTextView.updateTextSize();
|
||||
Rect visibleRect = new Rect();
|
||||
calcOurContentVisibleRect(visibleRect);
|
||||
// Note that sendOurVisibleRect calls viewToContent, so the coordinates
|
||||
// should be in content coordinates.
|
||||
Rect bounds = nativeFocusCandidateNodeBounds();
|
||||
Rect vBox = contentToViewRect(bounds);
|
||||
mWebTextView.setRect(vBox.left, vBox.top, vBox.width(), vBox.height());
|
||||
if (!Rect.intersects(bounds, visibleRect)) {
|
||||
revealSelection();
|
||||
}
|
||||
updateWebTextViewPosition();
|
||||
String text = nativeFocusCandidateText();
|
||||
int nodePointer = nativeFocusCandidatePointer();
|
||||
// This needs to be called before setType, which may call
|
||||
@@ -4816,7 +4807,6 @@ public class WebView extends AbsoluteLayout
|
||||
mWebTextView.setType(nativeFocusCandidateType());
|
||||
// Gravity needs to be set after setType
|
||||
mWebTextView.setGravityForRtl(nativeFocusCandidateIsRtlText());
|
||||
updateWebTextViewPadding();
|
||||
if (null == text) {
|
||||
if (DebugFlags.WEB_VIEW) {
|
||||
Log.v(LOGTAG, "rebuildWebTextView null == text");
|
||||
@@ -4827,12 +4817,27 @@ public class WebView extends AbsoluteLayout
|
||||
InputMethodManager imm = InputMethodManager.peekInstance();
|
||||
if (imm != null && imm.isActive(mWebTextView)) {
|
||||
imm.restartInput(mWebTextView);
|
||||
mWebTextView.clearComposingText();
|
||||
}
|
||||
if (isFocused()) {
|
||||
mWebTextView.requestFocus();
|
||||
}
|
||||
}
|
||||
|
||||
public void updateWebTextViewPosition() {
|
||||
Rect visibleRect = new Rect();
|
||||
calcOurContentVisibleRect(visibleRect);
|
||||
// Note that sendOurVisibleRect calls viewToContent, so the coordinates
|
||||
// should be in content coordinates.
|
||||
Rect bounds = nativeFocusCandidateNodeBounds();
|
||||
Rect vBox = contentToViewRect(bounds);
|
||||
mWebTextView.setRect(vBox.left, vBox.top, vBox.width(), vBox.height());
|
||||
if (!Rect.intersects(bounds, visibleRect)) {
|
||||
revealSelection();
|
||||
}
|
||||
updateWebTextViewPadding();
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the padding of mWebTextView based on the native textfield/textarea
|
||||
*/
|
||||
@@ -8433,7 +8438,7 @@ public class WebView extends AbsoluteLayout
|
||||
// this is sent after finishing resize in WebViewCore. Make
|
||||
// sure the text edit box is still on the screen.
|
||||
if (inEditingMode() && nativeCursorIsTextInput()) {
|
||||
rebuildWebTextView();
|
||||
updateWebTextViewPosition();
|
||||
}
|
||||
break;
|
||||
case CLEAR_TEXT_ENTRY:
|
||||
|
||||
Reference in New Issue
Block a user