⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 117813 in webkit


Ignore:
Timestamp:
May 21, 2012, 1:52:31 PM (14 years ago)
Author:
rniwa@webkit.org
Message:

isStartOfDocument and isEndOfDocument are poorly named
https://bugs.webkit.org/show_bug.cgi?id=86649

Reviewed by Levi Weintraub.

Renamed isEndOfDocument to isEndOfEditableOrNonEditableContent because that's what this function checks.

Also added new versions of isStartOfDocument and isEndOfDocument that correctly cross editing boundaries
to be used in selectFrameElementInParentIfFullySelected.

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):

  • editing/Editor.cpp:

(WebCore::Editor::insertLineBreak):
(WebCore::Editor::insertParagraphSeparator):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::doApply):

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::setStartAndEndFromBaseAndExtentRespectingGranularity):

  • editing/visible_units.cpp:

(WebCore::isEndOfEditableOrNonEditableContent):

  • editing/visible_units.h:
Location:
trunk/Source/WebCore
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r117811 r117813  
     12012-05-21  Ryosuke Niwa  <rniwa@webkit.org>
     2
     3        isStartOfDocument and isEndOfDocument are poorly named
     4        https://bugs.webkit.org/show_bug.cgi?id=86649
     5
     6        Reviewed by Levi Weintraub.
     7
     8        Renamed isEndOfDocument to isEndOfEditableOrNonEditableContent because that's what this function checks.
     9
     10        Also added new versions of isStartOfDocument and isEndOfDocument that correctly cross editing boundaries
     11        to be used in selectFrameElementInParentIfFullySelected.
     12
     13        * editing/CompositeEditCommand.cpp:
     14        (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
     15        * editing/Editor.cpp:
     16        (WebCore::Editor::insertLineBreak):
     17        (WebCore::Editor::insertParagraphSeparator):
     18        * editing/ReplaceSelectionCommand.cpp:
     19        (WebCore::ReplaceSelectionCommand::doApply):
     20        * editing/VisibleSelection.cpp:
     21        (WebCore::VisibleSelection::setStartAndEndFromBaseAndExtentRespectingGranularity):
     22        * editing/visible_units.cpp:
     23        (WebCore::isEndOfEditableOrNonEditableContent):
     24        * editing/visible_units.h:
     25
    1262012-05-21 Anna Cavender  <annacc@chromium.org>
    227
  • trunk/Source/WebCore/editing/CompositeEditCommand.cpp

    r116798 r117813  
    930930            ASSERT(upstreamStart.deprecatedNode()->isDescendantOf(enclosingBlock(upstreamEnd.deprecatedNode())));
    931931            return 0;
    932         } else if (isEndOfDocument(visibleEnd)) {
    933             // At the end of the document. We can bail here as well.
     932        } else if (isEndOfEditableOrNonEditableContent(visibleEnd)) {
     933            // At the end of the editable region. We can bail here as well.
    934934            return 0;
    935935        }
  • trunk/Source/WebCore/editing/Editor.cpp

    r117590 r117813  
    947947
    948948    VisiblePosition caret = m_frame->selection()->selection().visibleStart();
    949     bool alignToEdge = isEndOfDocument(caret);
     949    bool alignToEdge = isEndOfEditableOrNonEditableContent(caret);
    950950    bool autocorrectionIsApplied = m_alternativeTextController->applyAutocorrectionBeforeTypingIfAppropriate();
    951951    TypingCommand::insertLineBreak(m_frame->document(), autocorrectionIsApplied ? TypingCommand::RetainAutocorrectionIndicator : 0);
     
    967967
    968968    VisiblePosition caret = m_frame->selection()->selection().visibleStart();
    969     bool alignToEdge = isEndOfDocument(caret);
     969    bool alignToEdge = isEndOfEditableOrNonEditableContent(caret);
    970970    bool autocorrectionIsApplied = m_alternativeTextController->applyAutocorrectionBeforeTypingIfAppropriate();
    971971    TypingCommand::insertParagraphSeparator(m_frame->document(), autocorrectionIsApplied ? TypingCommand::RetainAutocorrectionIndicator : 0);
  • trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp

    r116545 r117813  
    831831        if (fragment.hasInterchangeNewlineAtStart()) {
    832832            if (isEndOfParagraph(visibleStart) && !isStartOfParagraph(visibleStart)) {
    833                 if (!isEndOfDocument(visibleStart))
     833                if (!isEndOfEditableOrNonEditableContent(visibleStart))
    834834                    setEndingSelection(visibleStart.next());
    835835            } else
  • trunk/Source/WebCore/editing/VisibleSelection.cpp

    r117420 r117813  
    294294            VisiblePosition originalEnd(m_end, m_affinity);
    295295            EWordSide side = RightWordIfOnBoundary;
    296             if (isEndOfDocument(start) || (isEndOfLine(start) && !isStartOfLine(start) && !isEndOfParagraph(start)))
     296            if (isEndOfEditableOrNonEditableContent(start) || (isEndOfLine(start) && !isStartOfLine(start) && !isEndOfParagraph(start)))
    297297                side = LeftWordIfOnBoundary;
    298298            m_start = startOfWord(start, side).deepEquivalent();
    299299            side = RightWordIfOnBoundary;
    300             if (isEndOfDocument(originalEnd) || (isEndOfLine(originalEnd) && !isStartOfLine(originalEnd) && !isEndOfParagraph(originalEnd)))
     300            if (isEndOfEditableOrNonEditableContent(originalEnd) || (isEndOfLine(originalEnd) && !isStartOfLine(originalEnd) && !isEndOfParagraph(originalEnd)))
    301301                side = LeftWordIfOnBoundary;
    302302               
     
    350350        case ParagraphGranularity: {
    351351            VisiblePosition pos(m_start, m_affinity);
    352             if (isStartOfLine(pos) && isEndOfDocument(pos))
     352            if (isStartOfLine(pos) && isEndOfEditableOrNonEditableContent(pos))
    353353                pos = pos.previous();
    354354            m_start = startOfParagraph(pos).deepEquivalent();
  • trunk/Source/WebCore/editing/visible_units.cpp

    r117392 r117813  
    13701370bool isStartOfDocument(const VisiblePosition &p)
    13711371{
    1372     return p.isNotNull() && p.previous().isNull();
     1372    return p.isNotNull() && p.previous(CanCrossEditingBoundary).isNull();
    13731373}
    13741374
    13751375bool isEndOfDocument(const VisiblePosition &p)
    13761376{
    1377     return p.isNotNull() && p.next().isNull();
     1377    return p.isNotNull() && p.next(CanCrossEditingBoundary).isNull();
    13781378}
    13791379
     
    13981398}
    13991399
     1400bool isEndOfEditableOrNonEditableContent(const VisiblePosition &p)
     1401{
     1402    return p.isNotNull() && p.next().isNull();
     1403}
     1404
    14001405VisiblePosition leftBoundaryOfLine(const VisiblePosition& c, TextDirection direction)
    14011406{
  • trunk/Source/WebCore/editing/visible_units.h

    r115788 r117813  
    9595VisiblePosition startOfEditableContent(const VisiblePosition&);
    9696VisiblePosition endOfEditableContent(const VisiblePosition&);
     97bool isEndOfEditableOrNonEditableContent(const VisiblePosition&);
    9798
    9899} // namespace WebCore
Note: See TracChangeset for help on using the changeset viewer.