| Index: ui/gfx/render_text.cc
|
| ===================================================================
|
| --- ui/gfx/render_text.cc (revision 201137)
|
| +++ ui/gfx/render_text.cc (working copy)
|
| @@ -664,19 +664,17 @@
|
| // overtype the next character.
|
| LogicalCursorDirection caret_affinity =
|
| insert_mode ? caret.caret_affinity() : CURSOR_FORWARD;
|
| - int x = 0, width = 1, height = 0;
|
| + int x = 0, width = 1;
|
| + Size size = GetStringSize();
|
| if (caret_pos == (caret_affinity == CURSOR_BACKWARD ? 0 : text().length())) {
|
| // The caret is attached to the boundary. Always return a 1-dip width caret,
|
| // since there is nothing to overtype.
|
| - Size size = GetStringSize();
|
| if ((GetTextDirection() == base::i18n::RIGHT_TO_LEFT) == (caret_pos == 0))
|
| x = size.width();
|
| - height = size.height();
|
| } else {
|
| size_t grapheme_start = (caret_affinity == CURSOR_FORWARD) ?
|
| caret_pos : IndexOfAdjacentGrapheme(caret_pos, CURSOR_BACKWARD);
|
| - ui::Range xspan;
|
| - GetGlyphBounds(grapheme_start, &xspan, &height);
|
| + ui::Range xspan(GetGlyphBounds(grapheme_start));
|
| if (insert_mode) {
|
| x = (caret_affinity == CURSOR_BACKWARD) ? xspan.end() : xspan.start();
|
| } else { // overtype mode
|
| @@ -684,9 +682,7 @@
|
| width = xspan.length();
|
| }
|
| }
|
| - height = std::min(height, display_rect().height());
|
| - int y = (display_rect().height() - height) / 2;
|
| - return Rect(ToViewPoint(Point(x, y)), Size(width, height));
|
| + return Rect(ToViewPoint(Point(x, 0)), Size(width, size.height()));
|
| }
|
|
|
| const Rect& RenderText::GetUpdatedCursorBounds() {
|
|
|