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( |