Chromium Code Reviews| Index: third_party/WebKit/Source/core/editing/VisibleUnits.cpp |
| diff --git a/third_party/WebKit/Source/core/editing/VisibleUnits.cpp b/third_party/WebKit/Source/core/editing/VisibleUnits.cpp |
| index 5def96008bcf39ce3f192892caeeb93e0db0ea4e..079c9e9443164ac51982a039a107d78156b076f7 100644 |
| --- a/third_party/WebKit/Source/core/editing/VisibleUnits.cpp |
| +++ b/third_party/WebKit/Source/core/editing/VisibleUnits.cpp |
| @@ -774,7 +774,6 @@ static InlineBoxPosition ComputeInlineBoxPositionTemplate( |
| const PositionTemplate<Strategy>& position, |
| TextAffinity affinity, |
| TextDirection primary_direction) { |
| - InlineBox* inline_box = nullptr; |
| int caret_offset = position.ComputeEditingOffset(); |
| Node* const anchor_node = position.AnchorNode(); |
| LayoutObject* layout_object = |
| @@ -785,7 +784,6 @@ static InlineBoxPosition ComputeInlineBoxPositionTemplate( |
| DCHECK(layout_object) << position; |
| if (!layout_object->IsText()) { |
| - inline_box = 0; |
| if (CanHaveChildrenForEditing(anchor_node) && |
| layout_object->IsLayoutBlockFlow() && |
| HasRenderedNonAnonymousDescendantsWithHeight(layout_object)) { |
| @@ -809,15 +807,22 @@ static InlineBoxPosition ComputeInlineBoxPositionTemplate( |
| return ComputeInlineBoxPosition( |
| upstream_equivalent, TextAffinity::kUpstream, primary_direction); |
| } |
| - if (layout_object->IsBox()) { |
| - inline_box = ToLayoutBox(layout_object)->InlineBoxWrapper(); |
| - if (!inline_box) |
| - return InlineBoxPosition(); |
| - if ((caret_offset > inline_box->CaretMinOffset() && |
| - caret_offset < inline_box->CaretMaxOffset())) |
| - return InlineBoxPosition(inline_box, caret_offset); |
| - } |
| - } else { |
| + if (!layout_object->IsBox()) |
| + return InlineBoxPosition(); |
| + InlineBox* const inline_box = |
| + ToLayoutBox(layout_object)->InlineBoxWrapper(); |
| + if (!inline_box) |
| + return InlineBoxPosition(); |
| + if ((caret_offset > inline_box->CaretMinOffset() && |
| + caret_offset < inline_box->CaretMaxOffset())) |
| + return InlineBoxPosition(inline_box, caret_offset); |
| + return AdjustInlineBoxPositionForTextDirection( |
| + inline_box, caret_offset, layout_object->Style()->GetUnicodeBidi(), |
| + primary_direction); |
| + } |
| + |
| + InlineBox* inline_box = nullptr; |
| + { |
|
Xiaocheng
2017/06/14 18:33:58
nit: Please add a TODO for removing this extra sco
yosin_UTC9
2017/06/15 02:33:21
Done.
|
| LayoutText* text_layout_object = ToLayoutText(layout_object); |
| InlineTextBox* candidate = nullptr; |