Changeset 117813 in webkit
- Timestamp:
- May 21, 2012, 1:52:31 PM (14 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 7 edited
-
ChangeLog (modified) (1 diff)
-
editing/CompositeEditCommand.cpp (modified) (1 diff)
-
editing/Editor.cpp (modified) (2 diffs)
-
editing/ReplaceSelectionCommand.cpp (modified) (1 diff)
-
editing/VisibleSelection.cpp (modified) (2 diffs)
-
editing/visible_units.cpp (modified) (2 diffs)
-
editing/visible_units.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r117811 r117813 1 2012-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 1 26 2012-05-21 Anna Cavender <annacc@chromium.org> 2 27 -
trunk/Source/WebCore/editing/CompositeEditCommand.cpp
r116798 r117813 930 930 ASSERT(upstreamStart.deprecatedNode()->isDescendantOf(enclosingBlock(upstreamEnd.deprecatedNode()))); 931 931 return 0; 932 } else if (isEndOf Document(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. 934 934 return 0; 935 935 } -
trunk/Source/WebCore/editing/Editor.cpp
r117590 r117813 947 947 948 948 VisiblePosition caret = m_frame->selection()->selection().visibleStart(); 949 bool alignToEdge = isEndOf Document(caret);949 bool alignToEdge = isEndOfEditableOrNonEditableContent(caret); 950 950 bool autocorrectionIsApplied = m_alternativeTextController->applyAutocorrectionBeforeTypingIfAppropriate(); 951 951 TypingCommand::insertLineBreak(m_frame->document(), autocorrectionIsApplied ? TypingCommand::RetainAutocorrectionIndicator : 0); … … 967 967 968 968 VisiblePosition caret = m_frame->selection()->selection().visibleStart(); 969 bool alignToEdge = isEndOf Document(caret);969 bool alignToEdge = isEndOfEditableOrNonEditableContent(caret); 970 970 bool autocorrectionIsApplied = m_alternativeTextController->applyAutocorrectionBeforeTypingIfAppropriate(); 971 971 TypingCommand::insertParagraphSeparator(m_frame->document(), autocorrectionIsApplied ? TypingCommand::RetainAutocorrectionIndicator : 0); -
trunk/Source/WebCore/editing/ReplaceSelectionCommand.cpp
r116545 r117813 831 831 if (fragment.hasInterchangeNewlineAtStart()) { 832 832 if (isEndOfParagraph(visibleStart) && !isStartOfParagraph(visibleStart)) { 833 if (!isEndOf Document(visibleStart))833 if (!isEndOfEditableOrNonEditableContent(visibleStart)) 834 834 setEndingSelection(visibleStart.next()); 835 835 } else -
trunk/Source/WebCore/editing/VisibleSelection.cpp
r117420 r117813 294 294 VisiblePosition originalEnd(m_end, m_affinity); 295 295 EWordSide side = RightWordIfOnBoundary; 296 if (isEndOf Document(start) || (isEndOfLine(start) && !isStartOfLine(start) && !isEndOfParagraph(start)))296 if (isEndOfEditableOrNonEditableContent(start) || (isEndOfLine(start) && !isStartOfLine(start) && !isEndOfParagraph(start))) 297 297 side = LeftWordIfOnBoundary; 298 298 m_start = startOfWord(start, side).deepEquivalent(); 299 299 side = RightWordIfOnBoundary; 300 if (isEndOf Document(originalEnd) || (isEndOfLine(originalEnd) && !isStartOfLine(originalEnd) && !isEndOfParagraph(originalEnd)))300 if (isEndOfEditableOrNonEditableContent(originalEnd) || (isEndOfLine(originalEnd) && !isStartOfLine(originalEnd) && !isEndOfParagraph(originalEnd))) 301 301 side = LeftWordIfOnBoundary; 302 302 … … 350 350 case ParagraphGranularity: { 351 351 VisiblePosition pos(m_start, m_affinity); 352 if (isStartOfLine(pos) && isEndOf Document(pos))352 if (isStartOfLine(pos) && isEndOfEditableOrNonEditableContent(pos)) 353 353 pos = pos.previous(); 354 354 m_start = startOfParagraph(pos).deepEquivalent(); -
trunk/Source/WebCore/editing/visible_units.cpp
r117392 r117813 1370 1370 bool isStartOfDocument(const VisiblePosition &p) 1371 1371 { 1372 return p.isNotNull() && p.previous( ).isNull();1372 return p.isNotNull() && p.previous(CanCrossEditingBoundary).isNull(); 1373 1373 } 1374 1374 1375 1375 bool isEndOfDocument(const VisiblePosition &p) 1376 1376 { 1377 return p.isNotNull() && p.next( ).isNull();1377 return p.isNotNull() && p.next(CanCrossEditingBoundary).isNull(); 1378 1378 } 1379 1379 … … 1398 1398 } 1399 1399 1400 bool isEndOfEditableOrNonEditableContent(const VisiblePosition &p) 1401 { 1402 return p.isNotNull() && p.next().isNull(); 1403 } 1404 1400 1405 VisiblePosition leftBoundaryOfLine(const VisiblePosition& c, TextDirection direction) 1401 1406 { -
trunk/Source/WebCore/editing/visible_units.h
r115788 r117813 95 95 VisiblePosition startOfEditableContent(const VisiblePosition&); 96 96 VisiblePosition endOfEditableContent(const VisiblePosition&); 97 bool isEndOfEditableOrNonEditableContent(const VisiblePosition&); 97 98 98 99 } // namespace WebCore
Note:
See TracChangeset
for help on using the changeset viewer.