Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(298)

Unified Diff: third_party/WebKit/Source/core/editing/SelectionController.cpp

Issue 2952173002: Refactor SelectionController::SelectClosestMisspellingFromHitTestResult() (Closed)
Patch Set: 2017-06-22T17:44:33 Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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();
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698