am 876a5dfe: am b2212464: Merge "Ensure the selection does not change in setTextAndKeepSelection." into froyo

Merge commit '876a5dfe3b4a7e0b7bba6b6227a2db2038f29976' into kraken

* commit '876a5dfe3b4a7e0b7bba6b6227a2db2038f29976':
  Ensure the selection does not change in setTextAndKeepSelection.
This commit is contained in:
Leon Scroggins
2010-04-14 12:10:58 -07:00
committed by Android Git Automerger

View File

@@ -343,6 +343,7 @@ import java.util.ArrayList;
@Override
protected void onSelectionChanged(int selStart, int selEnd) {
if (mInSetTextAndKeepSelection) return;
// This code is copied from TextView.onDraw(). That code does not get
// executed, however, because the WebTextView does not draw, allowing
// webkit's drawing to show through.
@@ -799,8 +800,14 @@ import java.util.ArrayList;
/* package */ void setTextAndKeepSelection(String text) {
mPreChange = text.toString();
Editable edit = (Editable) getText();
int selStart = Selection.getSelectionStart(edit);
int selEnd = Selection.getSelectionEnd(edit);
mInSetTextAndKeepSelection = true;
edit.replace(0, edit.length(), text);
int newLength = edit.length();
if (selStart > newLength) selStart = newLength;
if (selEnd > newLength) selEnd = newLength;
Selection.setSelection(edit, selStart, selEnd);
mInSetTextAndKeepSelection = false;
updateCachedTextfield();
}