| Index: third_party/WebKit/Source/core/editing/SelectionController.cpp
|
| diff --git a/third_party/WebKit/Source/core/editing/SelectionController.cpp b/third_party/WebKit/Source/core/editing/SelectionController.cpp
|
| index 2d19525065905912dc4f112502438b980d347622..9faa3b04905fa5b536cd903b7df0d3aaa2f80a76 100644
|
| --- a/third_party/WebKit/Source/core/editing/SelectionController.cpp
|
| +++ b/third_party/WebKit/Source/core/editing/SelectionController.cpp
|
| @@ -527,28 +527,37 @@ void SelectionController::SelectClosestMisspellingFromHitTestResult(
|
| const HitTestResult& result,
|
| AppendTrailingWhitespace append_trailing_whitespace) {
|
| Node* inner_node = result.InnerNode();
|
| - VisibleSelectionInFlatTree new_selection;
|
|
|
| if (!inner_node || !inner_node->GetLayoutObject())
|
| return;
|
|
|
| const VisiblePositionInFlatTree& pos = VisiblePositionOfHitTestResult(result);
|
| - if (pos.IsNotNull()) {
|
| - const PositionInFlatTree& marker_position =
|
| - pos.DeepEquivalent().ParentAnchoredEquivalent();
|
| - const DocumentMarker* const marker =
|
| - inner_node->GetDocument().Markers().MarkerAtPosition(
|
| - ToPositionInDOMTree(marker_position),
|
| - DocumentMarker::MisspellingMarkers());
|
| - if (marker) {
|
| - Node* container_node = marker_position.ComputeContainerNode();
|
| - const PositionInFlatTree start(container_node, marker->StartOffset());
|
| - const PositionInFlatTree end(container_node, marker->EndOffset());
|
| - new_selection = CreateVisibleSelection(
|
| - SelectionInFlatTree::Builder().Collapse(start).Extend(end).Build());
|
| - }
|
| + if (pos.IsNull()) {
|
| + UpdateSelectionForMouseDownDispatchingSelectStart(
|
| + inner_node, VisibleSelectionInFlatTree(), kWordGranularity,
|
| + HandleVisibility::kNotVisible);
|
| + return;
|
| }
|
|
|
| + const PositionInFlatTree& marker_position =
|
| + pos.DeepEquivalent().ParentAnchoredEquivalent();
|
| + const DocumentMarker* const marker =
|
| + inner_node->GetDocument().Markers().MarkerAtPosition(
|
| + ToPositionInDOMTree(marker_position),
|
| + DocumentMarker::MisspellingMarkers());
|
| + if (!marker) {
|
| + UpdateSelectionForMouseDownDispatchingSelectStart(
|
| + inner_node, VisibleSelectionInFlatTree(), kWordGranularity,
|
| + HandleVisibility::kNotVisible);
|
| + return;
|
| + }
|
| +
|
| + Node* container_node = marker_position.ComputeContainerNode();
|
| + const PositionInFlatTree start(container_node, marker->StartOffset());
|
| + const PositionInFlatTree end(container_node, marker->EndOffset());
|
| + VisibleSelectionInFlatTree new_selection = CreateVisibleSelection(
|
| + SelectionInFlatTree::Builder().Collapse(start).Extend(end).Build());
|
| +
|
| if (append_trailing_whitespace == AppendTrailingWhitespace::kShouldAppend)
|
| new_selection.AppendTrailingWhitespace();
|
|
|
|
|