Chromium Code Reviews| Index: third_party/WebKit/Source/core/editing/commands/InsertListCommand.cpp |
| diff --git a/third_party/WebKit/Source/core/editing/commands/InsertListCommand.cpp b/third_party/WebKit/Source/core/editing/commands/InsertListCommand.cpp |
| index 9b16ad8b03461d9d3aa4b3a398bacf613c3a16ce..3131a2ba594a77d3de9a543a1f8865a64d93f079 100644 |
| --- a/third_party/WebKit/Source/core/editing/commands/InsertListCommand.cpp |
| +++ b/third_party/WebKit/Source/core/editing/commands/InsertListCommand.cpp |
| @@ -155,10 +155,14 @@ void InsertListCommand::doApply(EditingState* editingState) { |
| // consistent and then use a left margin/padding rule here. |
| if (visibleEnd.deepEquivalent() != visibleStart.deepEquivalent() && |
| isStartOfParagraph(visibleEnd, CanSkipOverEditingBoundary)) { |
| - setEndingSelection(createVisibleSelection( |
| - visibleStart, |
| - previousPositionOf(visibleEnd, CannotCrossEditingBoundary), |
| - endingSelection().isDirectional())); |
| + const VisiblePosition& newEnd = |
| + previousPositionOf(visibleEnd, CannotCrossEditingBoundary); |
| + SelectionInDOMTree::Builder builder; |
| + builder.setIsDirectional(endingSelection().isDirectional()); |
| + builder.collapse(visibleStart.toPositionWithAffinity()); |
| + if (newEnd.isNotNull()) |
| + builder.extend(newEnd.deepEquivalent()); |
| + setEndingSelection(createVisibleSelection(builder.build())); |
| if (!endingSelection().rootEditableElement()) |
| return; |
| } |
| @@ -277,9 +281,18 @@ void InsertListCommand::doApply(EditingState* editingState) { |
| visibleStartOfSelection = createVisiblePosition(startOfSelection); |
| } |
| - setEndingSelection( |
| - createVisibleSelection(visibleStartOfSelection, visibleEndOfSelection, |
| - endingSelection().isDirectional())); |
| + SelectionInDOMTree::Builder builder; |
| + builder.setIsDirectional(endingSelection().isDirectional()); |
| + if (visibleStartOfSelection.isNotNull() && |
|
Xiaocheng
2016/10/21 11:18:36
Let's use setBaseAndExtentDeprecated as having a n
yosin_UTC9
2016/10/24 06:19:44
Done
|
| + visibleEndOfSelection.isNotNull()) { |
| + builder.collapse(visibleStartOfSelection.toPositionWithAffinity()) |
| + .extend(visibleEndOfSelection.deepEquivalent()); |
| + } else if (visibleStartOfSelection.isNotNull()) { |
| + builder.collapse(visibleStartOfSelection.toPositionWithAffinity()); |
| + } else if (visibleEndOfSelection.isNotNull()) { |
| + builder.collapse(visibleEndOfSelection.toPositionWithAffinity()); |
| + } |
| + setEndingSelection(createVisibleSelection(builder.build())); |
| return; |
| } |