Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(733)

Side by Side Diff: Source/core/editing/commands/CompositeEditCommand.cpp

Issue 1320573003: Rename isBlock() to isEnclosingBlock() in EditingUtilities (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: 2015-08-26T21:48:03 Rebase Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 917 matching lines...) Expand 10 before | Expand all | Expand 10 after
928 928
929 Position upstreamStart = mostBackwardCaretPosition(visibleParagraphStart.dee pEquivalent()); 929 Position upstreamStart = mostBackwardCaretPosition(visibleParagraphStart.dee pEquivalent());
930 Position upstreamEnd = mostBackwardCaretPosition(visibleEnd.deepEquivalent() ); 930 Position upstreamEnd = mostBackwardCaretPosition(visibleEnd.deepEquivalent() );
931 931
932 // If there are no VisiblePositions in the same block as pos then 932 // If there are no VisiblePositions in the same block as pos then
933 // upstreamStart will be outside the paragraph 933 // upstreamStart will be outside the paragraph
934 if (comparePositions(pos, upstreamStart) < 0) 934 if (comparePositions(pos, upstreamStart) < 0)
935 return nullptr; 935 return nullptr;
936 936
937 // Perform some checks to see if we need to perform work in this function. 937 // Perform some checks to see if we need to perform work in this function.
938 if (isBlock(upstreamStart.anchorNode())) { 938 if (isEnclosingBlock(upstreamStart.anchorNode())) {
939 // If the block is the root editable element, always move content to a n ew block, 939 // If the block is the root editable element, always move content to a n ew block,
940 // since it is illegal to modify attributes on the root editable element for editing. 940 // since it is illegal to modify attributes on the root editable element for editing.
941 if (upstreamStart.anchorNode() == editableRootForPosition(upstreamStart) ) { 941 if (upstreamStart.anchorNode() == editableRootForPosition(upstreamStart) ) {
942 // If the block is the root editable element and it contains no visi ble content, create a new 942 // If the block is the root editable element and it contains no visi ble content, create a new
943 // block but don't try and move content into it, since there's nothi ng for moveParagraphs to move. 943 // block but don't try and move content into it, since there's nothi ng for moveParagraphs to move.
944 if (!hasRenderedNonAnonymousDescendantsWithHeight(upstreamStart.anch orNode()->layoutObject())) 944 if (!hasRenderedNonAnonymousDescendantsWithHeight(upstreamStart.anch orNode()->layoutObject()))
945 return insertNewDefaultParagraphElementAt(upstreamStart); 945 return insertNewDefaultParagraphElementAt(upstreamStart);
946 } else if (isBlock(upstreamEnd.anchorNode())) { 946 } else if (isEnclosingBlock(upstreamEnd.anchorNode())) {
947 if (!upstreamEnd.anchorNode()->isDescendantOf(upstreamStart.anchorNo de())) { 947 if (!upstreamEnd.anchorNode()->isDescendantOf(upstreamStart.anchorNo de())) {
948 // If the paragraph end is a descendant of paragraph start, then we need to run 948 // If the paragraph end is a descendant of paragraph start, then we need to run
949 // the rest of this function. If not, we can bail here. 949 // the rest of this function. If not, we can bail here.
950 return nullptr; 950 return nullptr;
951 } 951 }
952 } else if (enclosingBlock(upstreamEnd.anchorNode()) != upstreamStart.anc horNode()) { 952 } else if (enclosingBlock(upstreamEnd.anchorNode()) != upstreamStart.anc horNode()) {
953 // It should be an ancestor of the paragraph start. 953 // It should be an ancestor of the paragraph start.
954 // We can bail as we have a full block to work with. 954 // We can bail as we have a full block to work with.
955 return nullptr; 955 return nullptr;
956 } else if (isEndOfEditableOrNonEditableContent(visibleEnd)) { 956 } else if (isEndOfEditableOrNonEditableContent(visibleEnd)) {
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
1092 return; 1092 return;
1093 1093
1094 // Normally deletion will leave a br as a placeholder. 1094 // Normally deletion will leave a br as a placeholder.
1095 if (isHTMLBRElement(*node)) { 1095 if (isHTMLBRElement(*node)) {
1096 removeNodeAndPruneAncestors(node, destinationNode); 1096 removeNodeAndPruneAncestors(node, destinationNode);
1097 1097
1098 // If the selection to move was empty and in an empty block that 1098 // If the selection to move was empty and in an empty block that
1099 // doesn't require a placeholder to prop itself open (like a bordere d 1099 // doesn't require a placeholder to prop itself open (like a bordere d
1100 // div or an li), remove it during the move (the list removal code 1100 // div or an li), remove it during the move (the list removal code
1101 // expects this behavior). 1101 // expects this behavior).
1102 } else if (isBlock(node)) { 1102 } else if (isEnclosingBlock(node)) {
1103 // If caret position after deletion and destination position coincid es, 1103 // If caret position after deletion and destination position coincid es,
1104 // node should not be removed. 1104 // node should not be removed.
1105 if (!rendersInDifferentPosition(position, destination.deepEquivalent ())) { 1105 if (!rendersInDifferentPosition(position, destination.deepEquivalent ())) {
1106 prune(node, destinationNode); 1106 prune(node, destinationNode);
1107 return; 1107 return;
1108 } 1108 }
1109 removeNodeAndPruneAncestors(node, destinationNode); 1109 removeNodeAndPruneAncestors(node, destinationNode);
1110 } else if (lineBreakExistsAtPosition(position)) { 1110 } else if (lineBreakExistsAtPosition(position)) {
1111 // There is a preserved '\n' at caretAfterDelete. 1111 // There is a preserved '\n' at caretAfterDelete.
1112 // We can safely assume this is a text node. 1112 // We can safely assume this is a text node.
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
1421 return original; 1421 return original;
1422 1422
1423 VisiblePosition visiblePos(original); 1423 VisiblePosition visiblePos(original);
1424 Element* enclosingAnchor = enclosingAnchorElement(original); 1424 Element* enclosingAnchor = enclosingAnchorElement(original);
1425 Position result = original; 1425 Position result = original;
1426 1426
1427 if (!enclosingAnchor) 1427 if (!enclosingAnchor)
1428 return result; 1428 return result;
1429 1429
1430 // Don't avoid block level anchors, because that would insert content into t he wrong paragraph. 1430 // Don't avoid block level anchors, because that would insert content into t he wrong paragraph.
1431 if (enclosingAnchor && !isBlock(enclosingAnchor)) { 1431 if (enclosingAnchor && !isEnclosingBlock(enclosingAnchor)) {
1432 VisiblePosition firstInAnchor(firstPositionInNode(enclosingAnchor)); 1432 VisiblePosition firstInAnchor(firstPositionInNode(enclosingAnchor));
1433 VisiblePosition lastInAnchor(lastPositionInNode(enclosingAnchor)); 1433 VisiblePosition lastInAnchor(lastPositionInNode(enclosingAnchor));
1434 // If visually just after the anchor, insert *inside* the anchor unless it's the last 1434 // If visually just after the anchor, insert *inside* the anchor unless it's the last
1435 // VisiblePosition in the document, to match NSTextView. 1435 // VisiblePosition in the document, to match NSTextView.
1436 if (visiblePos.deepEquivalent() == lastInAnchor.deepEquivalent()) { 1436 if (visiblePos.deepEquivalent() == lastInAnchor.deepEquivalent()) {
1437 // Make sure anchors are pushed down before avoiding them so that we don't 1437 // Make sure anchors are pushed down before avoiding them so that we don't
1438 // also avoid structural elements like lists and blocks (5142012). 1438 // also avoid structural elements like lists and blocks (5142012).
1439 if (original.anchorNode() != enclosingAnchor && original.anchorNode( )->parentNode() != enclosingAnchor) { 1439 if (original.anchorNode() != enclosingAnchor && original.anchorNode( )->parentNode() != enclosingAnchor) {
1440 pushAnchorElementDown(enclosingAnchor); 1440 pushAnchorElementDown(enclosingAnchor);
1441 enclosingAnchor = enclosingAnchorElement(original); 1441 enclosingAnchor = enclosingAnchorElement(original);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1502 } 1502 }
1503 1503
1504 DEFINE_TRACE(CompositeEditCommand) 1504 DEFINE_TRACE(CompositeEditCommand)
1505 { 1505 {
1506 visitor->trace(m_commands); 1506 visitor->trace(m_commands);
1507 visitor->trace(m_composition); 1507 visitor->trace(m_composition);
1508 EditCommand::trace(visitor); 1508 EditCommand::trace(visitor);
1509 } 1509 }
1510 1510
1511 } // namespace blink 1511 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/editing/commands/ApplyStyleCommand.cpp ('k') | Source/core/editing/commands/DeleteSelectionCommand.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698