Index: ui/gfx/render_text_harfbuzz.cc |
diff --git a/ui/gfx/render_text_harfbuzz.cc b/ui/gfx/render_text_harfbuzz.cc |
index 7e916ff3ae21142a633c45521e402b3b1b44ebc8..fc457ded77fa18895297015aeb64531f5b499fcd 100644 |
--- a/ui/gfx/render_text_harfbuzz.cc |
+++ b/ui/gfx/render_text_harfbuzz.cc |
@@ -1013,7 +1013,9 @@ void RenderTextHarfBuzz::DrawVisualText(Canvas* canvas) { |
Range glyphs_range = run.CharRangeToGlyphRange(segment.char_range); |
scoped_ptr<SkPoint[]> positions(new SkPoint[glyphs_range.length()]); |
SkScalar offset_x = |
- preceding_segment_widths - run.positions[glyphs_range.start()].x(); |
+ preceding_segment_widths - |
+ ((glyphs_range.start() != 0) ? run.positions[glyphs_range.start()].x() |
msw
2015/02/17 22:28:25
Is this correct for RTL runs (where glyphs_range i
Jun Mukai
2015/02/17 23:10:25
Oops, good catch. Used GetMin()
|
+ : 0); |
for (size_t j = 0; j < glyphs_range.length(); ++j) { |
positions[j] = run.positions[(glyphs_range.is_reversed()) ? |
(glyphs_range.start() - j) : |