Index: Source/core/editing/commands/ReplaceSelectionCommand.cpp |
diff --git a/Source/core/editing/commands/ReplaceSelectionCommand.cpp b/Source/core/editing/commands/ReplaceSelectionCommand.cpp |
index ff4ce5db96003c1233f69f237087a0cd16d67cd8..5eef8486a3ba1f1926a0aaf780173a5a5a686a53 100644 |
--- a/Source/core/editing/commands/ReplaceSelectionCommand.cpp |
+++ b/Source/core/editing/commands/ReplaceSelectionCommand.cpp |
@@ -139,7 +139,7 @@ static Position positionAvoidingPrecedingNodes(Position pos) |
if (nextPosition == pos |
|| enclosingBlock(nextPosition.computeContainerNode()) != enclosingBlockElement |
- || VisiblePosition(pos).deepEquivalent() != VisiblePosition(nextPosition).deepEquivalent()) |
+ || createVisiblePosition(pos).deepEquivalent() != createVisiblePosition(nextPosition).deepEquivalent()) |
break; |
} |
return pos; |
@@ -399,7 +399,7 @@ bool ReplaceSelectionCommand::shouldMergeStart(bool selectionStartWasStartOfPara |
if (m_movingParagraph) |
return false; |
- VisiblePosition startOfInsertedContent(positionAtStartOfInsertedContent()); |
+ VisiblePosition startOfInsertedContent = positionAtStartOfInsertedContent(); |
VisiblePosition prev = previousPositionOf(startOfInsertedContent, CannotCrossEditingBoundary); |
if (prev.isNull()) |
return false; |
@@ -543,8 +543,8 @@ void ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline(Insert |
// FIXME: Tolerate differences in id, class, and style attributes. |
if (element->parentNode() && isNonTableCellHTMLBlockElement(element) && areIdenticalElements(element, element->parentNode()) |
- && VisiblePosition(firstPositionInNode(element->parentNode())).deepEquivalent() == VisiblePosition(firstPositionInNode(element)).deepEquivalent() |
- && VisiblePosition(lastPositionInNode(element->parentNode())).deepEquivalent() == VisiblePosition(lastPositionInNode(element)).deepEquivalent()) { |
+ && createVisiblePosition(firstPositionInNode(element->parentNode())).deepEquivalent() == createVisiblePosition(firstPositionInNode(element)).deepEquivalent() |
+ && createVisiblePosition(lastPositionInNode(element->parentNode())).deepEquivalent() == createVisiblePosition(lastPositionInNode(element)).deepEquivalent()) { |
insertedNodes.willRemoveNodePreservingChildren(*element); |
removeNodePreservingChildren(element); |
continue; |
@@ -665,8 +665,8 @@ void ReplaceSelectionCommand::moveElementOutOfAncestor(PassRefPtrWillBeRawPtr<El |
if (!ancestor->parentNode()->hasEditableStyle()) |
return; |
- VisiblePosition positionAtEndOfNode(lastPositionInOrAfterNode(element.get())); |
- VisiblePosition lastPositionInParagraph(lastPositionInNode(ancestor.get())); |
+ VisiblePosition positionAtEndOfNode = createVisiblePosition(lastPositionInOrAfterNode(element.get())); |
+ VisiblePosition lastPositionInParagraph = createVisiblePosition(lastPositionInNode(ancestor.get())); |
if (positionAtEndOfNode.deepEquivalent() == lastPositionInParagraph.deepEquivalent()) { |
removeNode(element); |
if (ancestor->nextSibling()) |
@@ -712,12 +712,12 @@ VisiblePosition ReplaceSelectionCommand::positionAtEndOfInsertedContent() const |
{ |
// FIXME: Why is this hack here? What's special about <select> tags? |
HTMLSelectElement* enclosingSelect = toHTMLSelectElement(enclosingElementWithTag(m_endOfInsertedContent, selectTag)); |
- return VisiblePosition(enclosingSelect ? lastPositionInOrAfterNode(enclosingSelect) : m_endOfInsertedContent); |
+ return createVisiblePosition(enclosingSelect ? lastPositionInOrAfterNode(enclosingSelect) : m_endOfInsertedContent); |
} |
VisiblePosition ReplaceSelectionCommand::positionAtStartOfInsertedContent() const |
{ |
- return VisiblePosition(m_startOfInsertedContent); |
+ return createVisiblePosition(m_startOfInsertedContent); |
} |
static void removeHeadContents(ReplacementFragment& fragment) |
@@ -850,7 +850,7 @@ void ReplaceSelectionCommand::mergeEndIfNeeded() |
if (endOfParagraph(startOfParagraphToMove).deepEquivalent() == destination.deepEquivalent()) { |
RefPtrWillBeRawPtr<HTMLBRElement> placeholder = createBreakElement(document()); |
insertNodeBefore(placeholder, startOfParagraphToMove.deepEquivalent().anchorNode()); |
- destination = VisiblePosition(positionBeforeNode(placeholder.get())); |
+ destination = createVisiblePosition(positionBeforeNode(placeholder.get())); |
} |
moveParagraph(startOfParagraphToMove, endOfParagraph(startOfParagraphToMove), destination); |
@@ -1032,7 +1032,7 @@ void ReplaceSelectionCommand::doApply() |
HTMLBRElement* endBR = isHTMLBRElement(*mostForwardCaretPosition(insertionPos).anchorNode()) ? toHTMLBRElement(mostForwardCaretPosition(insertionPos).anchorNode()) : 0; |
VisiblePosition originalVisPosBeforeEndBR; |
if (endBR) |
- originalVisPosBeforeEndBR = previousPositionOf(VisiblePosition(positionBeforeNode(endBR))); |
+ originalVisPosBeforeEndBR = previousPositionOf(createVisiblePosition(positionBeforeNode(endBR))); |
RefPtrWillBeRawPtr<Element> enclosingBlockOfInsertionPos = enclosingBlock(insertionPos.anchorNode()); |
@@ -1040,7 +1040,7 @@ void ReplaceSelectionCommand::doApply() |
// If the start was in a Mail blockquote, we will have already handled adjusting insertionPos above. |
if (m_preventNesting && enclosingBlockOfInsertionPos && !isTableCell(enclosingBlockOfInsertionPos.get()) && !startIsInsideMailBlockquote) { |
ASSERT(enclosingBlockOfInsertionPos != currentRoot); |
- VisiblePosition visibleInsertionPos(insertionPos); |
+ VisiblePosition visibleInsertionPos = createVisiblePosition(insertionPos); |
if (isEndOfBlock(visibleInsertionPos) && !(isStartOfBlock(visibleInsertionPos) && fragment.hasInterchangeNewlineAtEnd())) |
insertionPos = positionInParentAfterNode(*enclosingBlockOfInsertionPos); |
else if (isStartOfBlock(visibleInsertionPos)) |
@@ -1159,7 +1159,7 @@ void ReplaceSelectionCommand::doApply() |
if (enclosingBlockOfInsertionPos && !enclosingBlockOfInsertionPos->inDocument()) |
enclosingBlockOfInsertionPos = nullptr; |
- VisiblePosition startOfInsertedContent(firstPositionInOrBeforeNode(insertedNodes.firstNodeInserted())); |
+ VisiblePosition startOfInsertedContent = createVisiblePosition(firstPositionInOrBeforeNode(insertedNodes.firstNodeInserted())); |
// We inserted before the enclosingBlockOfInsertionPos to prevent nesting, and the content before the enclosingBlockOfInsertionPos wasn't in its own block and |
// didn't have a br after it, so the inserted content ended up in the same paragraph. |
@@ -1236,7 +1236,7 @@ void ReplaceSelectionCommand::doApply() |
if (isListItem(enclosingBlockElement)) { |
RefPtrWillBeRawPtr<HTMLLIElement> newListItem = createListItemElement(document()); |
insertNodeAfter(newListItem, enclosingBlockElement); |
- setEndingSelection(VisiblePosition(firstPositionInNode(newListItem.get()))); |
+ setEndingSelection(createVisiblePosition(firstPositionInNode(newListItem.get()))); |
} else { |
// Use a default paragraph element (a plain div) for the empty paragraph, using the last paragraph |
// block's style seems to annoy users. |
@@ -1275,7 +1275,7 @@ bool ReplaceSelectionCommand::shouldRemoveEndBR(HTMLBRElement* endBR, const Visi |
if (!endBR || !endBR->inDocument()) |
return false; |
- VisiblePosition visiblePos(positionBeforeNode(endBR)); |
+ VisiblePosition visiblePos = createVisiblePosition(positionBeforeNode(endBR)); |
// Don't remove the br if nothing was inserted. |
if (previousPositionOf(visiblePos).deepEquivalent() == originalVisPosBeforeEndBR.deepEquivalent()) |
@@ -1464,8 +1464,8 @@ Node* ReplaceSelectionCommand::insertAsListItems(PassRefPtrWillBeRawPtr<HTMLElem |
while (listElement->hasOneChild() && isHTMLListElement(listElement->firstChild())) |
listElement = toHTMLElement(listElement->firstChild()); |
- bool isStart = isStartOfParagraph(VisiblePosition(insertPos)); |
- bool isEnd = isEndOfParagraph(VisiblePosition(insertPos)); |
+ bool isStart = isStartOfParagraph(createVisiblePosition(insertPos)); |
+ bool isEnd = isEndOfParagraph(createVisiblePosition(insertPos)); |
bool isMiddle = !isStart && !isEnd; |
Node* lastNode = insertionBlock; |
@@ -1536,7 +1536,7 @@ bool ReplaceSelectionCommand::performTrivialReplace(const ReplacementFragment& f |
return false; |
if (nodeAfterInsertionPos && nodeAfterInsertionPos->parentNode() && isHTMLBRElement(*nodeAfterInsertionPos) |
- && shouldRemoveEndBR(toHTMLBRElement(nodeAfterInsertionPos.get()), VisiblePosition(positionBeforeNode(nodeAfterInsertionPos.get())))) |
+ && shouldRemoveEndBR(toHTMLBRElement(nodeAfterInsertionPos.get()), createVisiblePosition(positionBeforeNode(nodeAfterInsertionPos.get())))) |
removeNodeAndPruneAncestors(nodeAfterInsertionPos.get()); |
VisibleSelection selectionAfterReplace(m_selectReplacement ? start : end, end); |