Chromium Code Reviews| Index: third_party/WebKit/Source/core/editing/commands/DeleteSelectionCommand.cpp |
| diff --git a/third_party/WebKit/Source/core/editing/commands/DeleteSelectionCommand.cpp b/third_party/WebKit/Source/core/editing/commands/DeleteSelectionCommand.cpp |
| index 35896331fcbb1286c3761f16dcdd8b571467f10e..73960d9c443878e62cf59cd5f8e553933676e77d 100644 |
| --- a/third_party/WebKit/Source/core/editing/commands/DeleteSelectionCommand.cpp |
| +++ b/third_party/WebKit/Source/core/editing/commands/DeleteSelectionCommand.cpp |
| @@ -197,8 +197,17 @@ void DeleteSelectionCommand::setStartingSelectionOnSmartDelete( |
| bool isBaseFirst = startingSelection().isBaseFirst(); |
| VisiblePosition newBase = createVisiblePosition(isBaseFirst ? start : end); |
| VisiblePosition newExtent = createVisiblePosition(isBaseFirst ? end : start); |
| - setStartingSelection(createVisibleSelection( |
| - newBase, newExtent, startingSelection().isDirectional())); |
| + SelectionInDOMTree::Builder builder; |
| + builder.setIsDirectional(startingSelection().isDirectional()); |
| + if (newBase.isNotNull() && newExtent.isNotNull()) { |
|
Xiaocheng
2016/10/21 11:18:36
Let's use setBaseAndExtentDeprecated, as having a
yosin_UTC9
2016/10/24 06:19:44
Done.
|
| + builder.collapse(newBase.deepEquivalent()) |
| + .extend(newExtent.deepEquivalent()); |
| + } else if (newBase.isNotNull()) { |
| + builder.collapse(newBase.deepEquivalent()); |
| + } else if (newExtent.isNotNull()) { |
| + builder.collapse(newExtent.deepEquivalent()); |
| + } |
| + setStartingSelection(createVisibleSelection(builder.build())); |
| } |
| void DeleteSelectionCommand::initializePositionData( |