Chromium Code Reviews| Index: Source/core/editing/htmlediting.cpp |
| diff --git a/Source/core/editing/htmlediting.cpp b/Source/core/editing/htmlediting.cpp |
| index 5931c1f11ca9c7c35860319ffbe13b96b61f26ee..5db5d916645babd99f1ccf326ea7cf77d518ae77 100644 |
| --- a/Source/core/editing/htmlediting.cpp |
| +++ b/Source/core/editing/htmlediting.cpp |
| @@ -1102,8 +1102,9 @@ VisiblePosition visiblePositionForIndex(int index, ContainerNode* scope) |
| // Call this function to determine whether a node is visibly fit inside selectedRange |
| bool isNodeVisiblyContainedWithin(Node& node, const Range& selectedRange) |
| { |
| - // If the node is inside the range, then it surely is contained within |
| - if (selectedRange.compareNode(&node, IGNORE_EXCEPTION) == Range::NODE_INSIDE) |
| + bool nodeFullySelected = Range::compareBoundaryPoints(node.parentNode(), node.nodeIndex(), selectedRange.startContainer(), selectedRange.startOffset(), IGNORE_EXCEPTION) >= 0 |
|
philipj_slow
2015/06/08 10:12:27
Could this be written as a static helper and used
deepak.s
2015/06/08 11:44:02
Done.
|
| + && Range::compareBoundaryPoints(node.parentNode(), node.nodeIndex() + 1, selectedRange.endContainer(), selectedRange.endOffset(), IGNORE_EXCEPTION) <= 0; |
| + if (nodeFullySelected) |
| return true; |
| bool startIsVisuallySame = visiblePositionBeforeNode(node) == VisiblePosition(selectedRange.startPosition()); |