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