OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved. |
3 * Copyright (C) 2009, 2010, 2011 Google Inc. All rights reserved. | 3 * Copyright (C) 2009, 2010, 2011 Google Inc. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 1146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1157 // before the selection that was pasted into would also move content aft
er | 1157 // before the selection that was pasted into would also move content aft
er |
1158 // the selection that was pasted into if: only one paragraph was being p
asted, | 1158 // the selection that was pasted into if: only one paragraph was being p
asted, |
1159 // and it was not wrapped in a block, the selection that was pasted into
ended | 1159 // and it was not wrapped in a block, the selection that was pasted into
ended |
1160 // at the end of a block and the next paragraph didn't start at the star
t of a block. | 1160 // at the end of a block and the next paragraph didn't start at the star
t of a block. |
1161 // Insert a line break just after the inserted content to separate it fr
om what | 1161 // Insert a line break just after the inserted content to separate it fr
om what |
1162 // comes after and prevent that from happening. | 1162 // comes after and prevent that from happening. |
1163 VisiblePosition endOfInsertedContent = positionAtEndOfInsertedContent(); | 1163 VisiblePosition endOfInsertedContent = positionAtEndOfInsertedContent(); |
1164 if (startOfParagraph(endOfInsertedContent) == startOfParagraphToMove) { | 1164 if (startOfParagraph(endOfInsertedContent) == startOfParagraphToMove) { |
1165 insertNodeAt(createBreakElement(document()).get(), endOfInsertedCont
ent.deepEquivalent()); | 1165 insertNodeAt(createBreakElement(document()).get(), endOfInsertedCont
ent.deepEquivalent()); |
1166 // Mutation events (bug 22634) triggered by inserting the <br> might
have removed the content we're about to move | 1166 // Mutation events (bug 22634) triggered by inserting the <br> might
have removed the content we're about to move |
1167 if (!startOfParagraphToMove.deepEquivalent().anchorNode()->inDocumen
t()) | 1167 if (!startOfParagraphToMove.deepEquivalent().inDocument()) |
1168 return; | 1168 return; |
1169 } | 1169 } |
1170 | 1170 |
1171 // FIXME: Maintain positions for the start and end of inserted content i
nstead of keeping nodes. The nodes are | 1171 // FIXME: Maintain positions for the start and end of inserted content i
nstead of keeping nodes. The nodes are |
1172 // only ever used to create positions where inserted content starts/ends
. | 1172 // only ever used to create positions where inserted content starts/ends
. |
1173 moveParagraph(startOfParagraphToMove, endOfParagraph(startOfParagraphToM
ove), destination); | 1173 moveParagraph(startOfParagraphToMove, endOfParagraph(startOfParagraphToM
ove), destination); |
1174 m_startOfInsertedContent = endingSelection().visibleStart().deepEquivale
nt().downstream(); | 1174 m_startOfInsertedContent = endingSelection().visibleStart().deepEquivale
nt().downstream(); |
1175 if (m_endOfInsertedContent.isOrphan()) | 1175 if (m_endOfInsertedContent.isOrphan()) |
1176 m_endOfInsertedContent = endingSelection().visibleEnd().deepEquivale
nt().upstream(); | 1176 m_endOfInsertedContent = endingSelection().visibleEnd().deepEquivale
nt().upstream(); |
1177 } | 1177 } |
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1487 removeNodeAndPruneAncestors(nodeAfterInsertionPos.get()); | 1487 removeNodeAndPruneAncestors(nodeAfterInsertionPos.get()); |
1488 | 1488 |
1489 VisibleSelection selectionAfterReplace(m_selectReplacement ? start : end, en
d); | 1489 VisibleSelection selectionAfterReplace(m_selectReplacement ? start : end, en
d); |
1490 | 1490 |
1491 setEndingSelection(selectionAfterReplace); | 1491 setEndingSelection(selectionAfterReplace); |
1492 | 1492 |
1493 return true; | 1493 return true; |
1494 } | 1494 } |
1495 | 1495 |
1496 } // namespace WebCore | 1496 } // namespace WebCore |
OLD | NEW |