Changeset 48234 in webkit


Ignore:
Timestamp:
Sep 9, 2009, 4:25:47 PM (16 years ago)
Author:
eric@webkit.org
Message:

2009-07-30 Eric Seidel <eric@webkit.org>

Reviewed by Adam Barth.

Rename positionBeforeNode to positionInParentBeforeNode
and positionAfterNode to positionInParentAfterNode
in preparation for adding a positionBeforeNode
which returns a neighbor-anchored position.
https://bugs.webkit.org/show_bug.cgi?id=25494

No functional changes, thus no tests.

  • dom/PositionConstructors.h: (WebCore::positionInParentBeforeNode): (WebCore::positionInParentAfterNode):
  • dom/PositionIterator.cpp: (WebCore::PositionIterator::operator Position):
  • editing/ApplyStyleCommand.cpp: (WebCore::ApplyStyleCommand::applyInlineStyle):
  • editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::positionOutsideTabSpan): (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph): (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
  • editing/CreateLinkCommand.cpp: (WebCore::CreateLinkCommand::doApply):
  • editing/DeleteButtonController.cpp: (WebCore::DeleteButtonController::deleteTarget):
  • editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::initializeStartEnd): (WebCore::updatePositionForNodeRemoval):
  • editing/InsertLineBreakCommand.cpp: (WebCore::InsertLineBreakCommand::doApply):
  • editing/InsertListCommand.cpp: (WebCore::InsertListCommand::doApply):
  • editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::doApply):
  • editing/InsertTextCommand.cpp: (WebCore::InsertTextCommand::input):
  • editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent): (WebCore::ReplaceSelectionCommand::doApply):
  • editing/VisibleSelection.cpp: (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries):
  • editing/htmlediting.cpp: (WebCore::firstEditablePositionAfterPositionInRoot): (WebCore::lastEditablePositionBeforePositionInRoot): (WebCore::rangeCompliantEquivalent): (WebCore::positionBeforeContainingSpecialElement): (WebCore::positionAfterContainingSpecialElement): (WebCore::positionBeforeTabSpan):
Location:
trunk/WebCore
Files:
1 added
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r48233 r48234  
    112009-07-30  Eric Seidel  <eric@webkit.org>
     2
     3        Reviewed by Adam Barth.
     4
     5        Rename positionBeforeNode to positionInParentBeforeNode
     6        and positionAfterNode to positionInParentAfterNode
     7        in preparation for adding a positionBeforeNode
     8        which returns a neighbor-anchored position.
     9        https://bugs.webkit.org/show_bug.cgi?id=25494
     10
     11        No functional changes, thus no tests.
     12
     13        * dom/PositionConstructors.h:
     14        (WebCore::positionInParentBeforeNode):
     15        (WebCore::positionInParentAfterNode):
     16        * dom/PositionIterator.cpp:
     17        (WebCore::PositionIterator::operator Position):
     18        * editing/ApplyStyleCommand.cpp:
     19        (WebCore::ApplyStyleCommand::applyInlineStyle):
     20        * editing/CompositeEditCommand.cpp:
     21        (WebCore::CompositeEditCommand::positionOutsideTabSpan):
     22        (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
     23        (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
     24        * editing/CreateLinkCommand.cpp:
     25        (WebCore::CreateLinkCommand::doApply):
     26        * editing/DeleteButtonController.cpp:
     27        (WebCore::DeleteButtonController::deleteTarget):
     28        * editing/DeleteSelectionCommand.cpp:
     29        (WebCore::DeleteSelectionCommand::initializeStartEnd):
     30        (WebCore::updatePositionForNodeRemoval):
     31        * editing/InsertLineBreakCommand.cpp:
     32        (WebCore::InsertLineBreakCommand::doApply):
     33        * editing/InsertListCommand.cpp:
     34        (WebCore::InsertListCommand::doApply):
     35        * editing/InsertParagraphSeparatorCommand.cpp:
     36        (WebCore::InsertParagraphSeparatorCommand::doApply):
     37        * editing/InsertTextCommand.cpp:
     38        (WebCore::InsertTextCommand::input):
     39        * editing/ReplaceSelectionCommand.cpp:
     40        (WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent):
     41        (WebCore::ReplaceSelectionCommand::doApply):
     42        * editing/VisibleSelection.cpp:
     43        (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries):
     44        * editing/htmlediting.cpp:
     45        (WebCore::firstEditablePositionAfterPositionInRoot):
     46        (WebCore::lastEditablePositionBeforePositionInRoot):
     47        (WebCore::rangeCompliantEquivalent):
     48        (WebCore::positionBeforeContainingSpecialElement):
     49        (WebCore::positionAfterContainingSpecialElement):
     50        (WebCore::positionBeforeTabSpan):
     51
     522009-04-30  Eric Seidel  <eric@webkit.org>
    253
    354        Reviewed by Adam Barth.
  • trunk/WebCore/dom/Position.h

    r48233 r48234  
    194194// If we ever add a PassPosition we can make these non-inline.
    195195
    196 inline Position positionBeforeNode(const Node* node)
     196inline Position positionInParentBeforeNode(const Node* node)
    197197{
    198198    // FIXME: This should ASSERT(node->parentNode())
     
    203203}
    204204
    205 inline Position positionAfterNode(const Node* node)
     205inline Position positionInParentAfterNode(const Node* node)
    206206{
    207207    ASSERT(node->parentNode());
  • trunk/WebCore/dom/PositionIterator.cpp

    r44374 r48234  
    3939    if (m_nodeAfterPositionInAnchor) {
    4040        ASSERT(m_nodeAfterPositionInAnchor->parentNode() == m_anchorNode);
    41         return positionBeforeNode(m_nodeAfterPositionInAnchor);
     41        return positionInParentBeforeNode(m_nodeAfterPositionInAnchor);
    4242    }
    4343    if (m_anchorNode->hasChildNodes())
  • trunk/WebCore/editing/ApplyStyleCommand.cpp

    r47644 r48234  
    909909        // Avoid removing the dir attribute and the unicode-bidi and direction properties from the unsplit ancestors.
    910910        if (startUnsplitAncestor && nodeFullySelected(startUnsplitAncestor, removeStart, end))
    911             embeddingRemoveStart = positionAfterNode(startUnsplitAncestor);
     911            embeddingRemoveStart = positionInParentAfterNode(startUnsplitAncestor);
    912912        if (endUnsplitAncestor && nodeFullySelected(endUnsplitAncestor, removeStart, end))
    913             embeddingRemoveEnd = positionBeforeNode(endUnsplitAncestor).downstream();
     913            embeddingRemoveEnd = positionInParentBeforeNode(endUnsplitAncestor).downstream();
    914914    }
    915915
     
    961961                    ASSERT(ancestorUnicodeBidi->isPrimitiveValue());
    962962                    if (static_cast<CSSPrimitiveValue*>(ancestorUnicodeBidi.get())->getIdent() == CSSValueEmbed) {
    963                         embeddingApplyStart = positionAfterNode(n);
     963                        embeddingApplyStart = positionInParentAfterNode(n);
    964964                        break;
    965965                    }
     
    975975                    ASSERT(ancestorUnicodeBidi->isPrimitiveValue());
    976976                    if (static_cast<CSSPrimitiveValue*>(ancestorUnicodeBidi.get())->getIdent() == CSSValueEmbed) {
    977                         embeddingApplyEnd = positionBeforeNode(n);
     977                        embeddingApplyEnd = positionInParentBeforeNode(n);
    978978                        break;
    979979                    }
  • trunk/WebCore/editing/CompositeEditCommand.cpp

    r47987 r48234  
    344344   
    345345    if (pos.deprecatedEditingOffset() <= caretMinOffset(pos.node()))
    346         return positionBeforeNode(tabSpan);
     346        return positionInParentBeforeNode(tabSpan);
    347347       
    348348    if (pos.deprecatedEditingOffset() >= caretMaxOffset(pos.node()))
    349         return positionAfterNode(tabSpan);
     349        return positionInParentAfterNode(tabSpan);
    350350
    351351    splitTextNodeContainingElement(static_cast<Text *>(pos.node()), pos.deprecatedEditingOffset());
    352     return positionBeforeNode(tabSpan);
     352    return positionInParentBeforeNode(tabSpan);
    353353}
    354354
     
    987987   
    988988    if (caretPos.node()->hasTagName(brTag)) {
    989         Position beforeBR(positionBeforeNode(caretPos.node()));
     989        Position beforeBR(positionInParentBeforeNode(caretPos.node()));
    990990        removeNode(caretPos.node());
    991991        prune(beforeBR.node());
     
    10401040                return original;
    10411041           
    1042             result = positionAfterNode(enclosingAnchor);
     1042            result = positionInParentAfterNode(enclosingAnchor);
    10431043        }
    10441044        // If visually just before an anchor, insert *outside* the anchor unless it's the first
     
    10541054                return original;
    10551055
    1056             result = positionBeforeNode(enclosingAnchor);
     1056            result = positionInParentBeforeNode(enclosingAnchor);
    10571057        }
    10581058    }
  • trunk/WebCore/editing/CreateLinkCommand.cpp

    r47688 r48234  
    5454        RefPtr<Text> textNode = Text::create(document(), m_url);
    5555        appendNode(textNode.get(), anchorElement.get());
    56         setEndingSelection(VisibleSelection(positionBeforeNode(anchorElement.get()), positionAfterNode(anchorElement.get()), DOWNSTREAM));
     56        setEndingSelection(VisibleSelection(positionInParentBeforeNode(anchorElement.get()), positionInParentAfterNode(anchorElement.get()), DOWNSTREAM));
    5757    }
    5858}
  • trunk/WebCore/editing/DeleteButtonController.cpp

    r47367 r48234  
    351351    // within the target, we unconditionally update the selection to be
    352352    // a caret where the target had been.
    353     Position pos = positionBeforeNode(element.get());
     353    Position pos = positionInParentBeforeNode(element.get());
    354354    applyCommand(RemoveNodeCommand::create(element.release()));
    355355    m_frame->selection()->setSelection(VisiblePosition(pos));
  • trunk/WebCore/editing/DeleteSelectionCommand.cpp

    r46914 r48234  
    138138        if (VisiblePosition(start) != m_selectionToDelete.visibleStart() || VisiblePosition(end) != m_selectionToDelete.visibleEnd())
    139139            break;
    140        
     140
    141141        // If we're going to expand to include the startSpecialContainer, it must be fully selected.
    142 
    143         if (startSpecialContainer && !endSpecialContainer && comparePositions(positionAfterNode(startSpecialContainer), end) > -1)
     142        if (startSpecialContainer && !endSpecialContainer && comparePositions(positionInParentAfterNode(startSpecialContainer), end) > -1)
    144143            break;
    145144
    146145        // If we're going to expand to include the endSpecialContainer, it must be fully selected.
    147         if (endSpecialContainer && !startSpecialContainer && comparePositions(start, positionBeforeNode(endSpecialContainer)) > -1)
     146        if (endSpecialContainer && !startSpecialContainer && comparePositions(start, positionInParentBeforeNode(endSpecialContainer)) > -1)
    148147            break;
    149        
     148
    150149        if (startSpecialContainer && startSpecialContainer->isDescendantOf(endSpecialContainer))
    151150            // Don't adjust the end yet, it is the end of a special element that contains the start
     
    318317        position = Position(position.node(), position.deprecatedEditingOffset() - 1);
    319318    if (position.node() == node || position.node()->isDescendantOf(node))
    320         position = positionBeforeNode(node);
     319        position = positionInParentBeforeNode(node);
    321320}
    322321
  • trunk/WebCore/editing/IndentOutdentCommand.cpp

    r47578 r48234  
    174174
    175175    // If the node isn't br or the parent node is empty, then don't remove.
    176     if (!br->hasTagName(brTag) || isVisiblyAdjacent(positionBeforeNode(parentNode), positionAfterNode(parentNode)))
     176    if (!br->hasTagName(brTag) || isVisiblyAdjacent(positionInParentBeforeNode(parentNode), positionInParentAfterNode(parentNode)))
    177177        return;
    178178
  • trunk/WebCore/editing/InsertLineBreakCommand.cpp

    r43035 r48234  
    126126            insertNodeBefore(nodeToInsert->cloneNode(false).get(), nodeToInsert.get());
    127127       
    128         setEndingSelection(VisibleSelection(positionAfterNode(nodeToInsert.get()), DOWNSTREAM));
     128        setEndingSelection(VisibleSelection(positionInParentAfterNode(nodeToInsert.get()), DOWNSTREAM));
    129129    // If we're inserting after all of the rendered text in a text node, or into a non-text node,
    130130    // a simple insertion is sufficient.
    131131    } else if (pos.deprecatedEditingOffset() >= caretMaxOffset(pos.node()) || !pos.node()->isTextNode()) {
    132132        insertNodeAt(nodeToInsert.get(), pos);
    133         setEndingSelection(VisibleSelection(positionAfterNode(nodeToInsert.get()), DOWNSTREAM));
     133        setEndingSelection(VisibleSelection(positionInParentAfterNode(nodeToInsert.get()), DOWNSTREAM));
    134134    } else {
    135135        // Split a text node
     
    145145        updateLayout();
    146146        if (!endingPosition.isRenderedCharacter()) {
    147             Position positionBeforeTextNode(positionBeforeNode(textNode));
     147            Position positionBeforeTextNode(positionInParentBeforeNode(textNode));
    148148            // Clear out all whitespace and insert one non-breaking space
    149149            deleteInsignificantTextDownstream(endingPosition);
  • trunk/WebCore/editing/InsertListCommand.cpp

    r44375 r48234  
    252252            Node* listChild = enclosingListChild(insertionPos.node());
    253253            if (listChild && listChild->hasTagName(liTag))
    254                 insertionPos = positionBeforeNode(listChild);
     254                insertionPos = positionInParentBeforeNode(listChild);
    255255
    256256            insertNodeAt(listElement, insertionPos);
  • trunk/WebCore/editing/InsertParagraphSeparatorCommand.cpp

    r46914 r48234  
    235235        RefPtr<Element> br = createBreakElement(document());
    236236        insertNodeAt(br.get(), insertionPosition);
    237         insertionPosition = positionAfterNode(br.get());
     237        insertionPosition = positionInParentAfterNode(br.get());
    238238    }
    239239   
  • trunk/WebCore/editing/InsertTextCommand.cpp

    r45016 r48234  
    146146    // It is possible for the node that contains startPosition to contain only unrendered whitespace,
    147147    // and so deleteInsignificantText could remove it.  Save the position before the node in case that happens.
    148     Position positionBeforeStartNode(positionBeforeNode(startPosition.node()));
     148    Position positionBeforeStartNode(positionInParentBeforeNode(startPosition.node()));
    149149    deleteInsignificantText(startPosition.upstream(), startPosition.downstream());
    150150    if (!startPosition.node()->inDocument())
  • trunk/WebCore/editing/ReplaceSelectionCommand.cpp

    r46914 r48234  
    529529{
    530530    // Return the inserted content's first VisiblePosition.
    531     return VisiblePosition(nextCandidate(positionBeforeNode(m_firstNodeInserted.get())));
     531    return VisiblePosition(nextCandidate(positionInParentBeforeNode(m_firstNodeInserted.get())));
    532532}
    533533
     
    795795        ASSERT(br->hasTagName(brTag));
    796796        // Insert content between the two blockquotes, but remove the br (since it was just a placeholder).
    797         insertionPos = positionBeforeNode(br);
     797        insertionPos = positionInParentBeforeNode(br);
    798798        removeNode(br);
    799799    }
     
    818818        VisiblePosition visibleInsertionPos(insertionPos);
    819819        if (isEndOfBlock(visibleInsertionPos) && !(isStartOfBlock(visibleInsertionPos) && fragment.hasInterchangeNewlineAtEnd()))
    820             insertionPos = positionAfterNode(startBlock);
     820            insertionPos = positionInParentAfterNode(startBlock);
    821821        else if (isStartOfBlock(visibleInsertionPos))
    822             insertionPos = positionBeforeNode(startBlock);
     822            insertionPos = positionInParentBeforeNode(startBlock);
    823823    }
    824824
  • trunk/WebCore/editing/VisibleSelection.cpp

    r44491 r48234  
    512512                Node* root = editableRootForPosition(p);
    513513                shadowAncestor = root ? root->shadowAncestorNode() : 0;
    514                 p = isAtomicNode(p.node()) ? positionBeforeNode(p.node()) : previousVisuallyDistinctCandidate(p);
     514                p = isAtomicNode(p.node()) ? positionInParentBeforeNode(p.node()) : previousVisuallyDistinctCandidate(p);
    515515                if (p.isNull() && (shadowAncestor != root))
    516516                    p = lastDeepEditingPositionForNode(shadowAncestor);
     
    541541                Node* root = editableRootForPosition(p);
    542542                shadowAncestor = root ? root->shadowAncestorNode() : 0;
    543                 p = isAtomicNode(p.node()) ? positionAfterNode(p.node()) : nextVisuallyDistinctCandidate(p);
     543                p = isAtomicNode(p.node()) ? positionInParentAfterNode(p.node()) : nextVisuallyDistinctCandidate(p);
    544544                if (p.isNull() && (shadowAncestor != root))
    545545                    p = Position(shadowAncestor, 0);
  • trunk/WebCore/editing/htmlediting.cpp

    r48233 r48234  
    281281   
    282282    while (p.node() && !isEditablePosition(p) && p.node()->isDescendantOf(highestRoot))
    283         p = isAtomicNode(p.node()) ? positionAfterNode(p.node()) : nextVisuallyDistinctCandidate(p);
     283        p = isAtomicNode(p.node()) ? positionInParentAfterNode(p.node()) : nextVisuallyDistinctCandidate(p);
    284284   
    285285    if (p.node() && !p.node()->isDescendantOf(highestRoot))
     
    302302   
    303303    while (p.node() && !isEditablePosition(p) && p.node()->isDescendantOf(highestRoot))
    304         p = isAtomicNode(p.node()) ? positionBeforeNode(p.node()) : previousVisuallyDistinctCandidate(p);
     304        p = isAtomicNode(p.node()) ? positionInParentBeforeNode(p.node()) : previousVisuallyDistinctCandidate(p);
    305305   
    306306    if (p.node() && !p.node()->isDescendantOf(highestRoot))
     
    340340    if (pos.deprecatedEditingOffset() <= 0) {
    341341        if (node->parentNode() && (editingIgnoresContent(node) || isTableElement(node)))
    342             return positionBeforeNode(node);
     342            return positionInParentBeforeNode(node);
    343343        return Position(node, 0);
    344344    }
     
    350350    if (pos.deprecatedEditingOffset() > maxCompliantOffset) {
    351351        if (node->parentNode())
    352             return positionAfterNode(node);
     352            return positionInParentAfterNode(node);
    353353
    354354        // there is no other option at this point than to
     
    360360    if ((pos.deprecatedEditingOffset() < maxCompliantOffset) && editingIgnoresContent(node)) {
    361361        ASSERT_NOT_REACHED();
    362         return node->parentNode() ? positionBeforeNode(node) : Position(node, 0);
     362        return node->parentNode() ? positionInParentBeforeNode(node) : Position(node, 0);
    363363    }
    364364   
    365365    if (pos.deprecatedEditingOffset() == maxCompliantOffset && (editingIgnoresContent(node) || isTableElement(node)))
    366         return positionAfterNode(node);
     366        return positionInParentAfterNode(node);
    367367   
    368368    return Position(pos);
     
    526526    if (!n)
    527527        return pos;
    528     Position result = positionBeforeNode(n);
     528    Position result = positionInParentBeforeNode(n);
    529529    if (result.isNull() || result.node()->rootEditableElement() != pos.node()->rootEditableElement())
    530530        return pos;
     
    544544    if (!n)
    545545        return pos;
    546     Position result = positionAfterNode(n);
     546    Position result = positionInParentAfterNode(n);
    547547    if (result.isNull() || result.node()->rootEditableElement() != pos.node()->rootEditableElement())
    548548        return pos;
     
    586586        return VisiblePosition(node, 0, DOWNSTREAM);
    587587    ASSERT(node->parentNode());
    588     return positionBeforeNode(node);
     588    return positionInParentBeforeNode(node);
    589589}
    590590
     
    596596        return VisiblePosition(node, node->childNodeCount(), DOWNSTREAM);
    597597    ASSERT(node->parentNode());
    598     return positionAfterNode(node);
     598    return positionInParentAfterNode(node);
    599599}
    600600
     
    811811    && firstList->isContentEditable() && secondList->isContentEditable()// both lists are editable
    812812    && firstList->rootEditableElement() == secondList->rootEditableElement()// don't cross editing boundaries
    813     && isVisiblyAdjacent(positionAfterNode(firstList), positionBeforeNode(secondList));
     813    && isVisiblyAdjacent(positionInParentAfterNode(firstList), positionInParentBeforeNode(secondList));
    814814    // Make sure there is no visible content between this li and the previous list
    815815}
     
    901901        return pos;
    902902   
    903     return positionBeforeNode(node);
     903    return positionInParentBeforeNode(node);
    904904}
    905905
Note: See TracChangeset for help on using the changeset viewer.