| Index: ui/gfx/render_text.cc
|
| diff --git a/ui/gfx/render_text.cc b/ui/gfx/render_text.cc
|
| index c4f841dfcf7898f4b590f31839f865e8afbdac74..5a3541f7dd927b7178b4f76995f4991a714695a0 100644
|
| --- a/ui/gfx/render_text.cc
|
| +++ b/ui/gfx/render_text.cc
|
| @@ -1187,6 +1187,16 @@ base::i18n::TextDirection RenderText::GetTextDirection(
|
| return text_direction_;
|
| }
|
|
|
| +size_t RenderText::TextIndexToGivenTextIndex(const base::string16& given_text,
|
| + size_t index) {
|
| + DCHECK(given_text == layout_text() || given_text == display_text());
|
| + DCHECK_LE(index, text().length());
|
| + ptrdiff_t i = obscured() ? UTF16IndexToOffset(text(), 0, index) : index;
|
| + CHECK_GE(i, 0);
|
| + // Clamp indices to the length of the given layout or display text.
|
| + return std::min<size_t>(given_text.length(), i);
|
| +}
|
| +
|
| // static
|
| bool RenderText::RangeContainsCaret(const Range& range,
|
| size_t caret_pos,
|
| @@ -1208,6 +1218,7 @@ void RenderText::MoveCursorTo(size_t position, bool select) {
|
| void RenderText::OnTextAttributeChanged() {
|
| layout_text_.clear();
|
| display_text_.clear();
|
| + text_elided_ = false;
|
| line_breaks_.SetMax(0);
|
|
|
| if (obscured_) {
|
|
|