OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2006, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2010 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 590 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
601 } | 601 } |
602 | 602 |
603 document().updateStyleAndLayoutIgnorePendingStylesheets(); | 603 document().updateStyleAndLayoutIgnorePendingStylesheets(); |
604 | 604 |
605 // Insert the list at a position visually equivalent to start of the | 605 // Insert the list at a position visually equivalent to start of the |
606 // paragraph that is being moved into the list. | 606 // paragraph that is being moved into the list. |
607 // Try to avoid inserting it somewhere where it will be surrounded by | 607 // Try to avoid inserting it somewhere where it will be surrounded by |
608 // inline ancestors of start, since it is easier for editing to produce | 608 // inline ancestors of start, since it is easier for editing to produce |
609 // clean markup when inline elements are pushed down as far as possible. | 609 // clean markup when inline elements are pushed down as far as possible. |
610 Position insertionPos(mostBackwardCaretPosition(startPos)); | 610 Position insertionPos(mostBackwardCaretPosition(startPos)); |
611 // Also avoid the temporary <span> element created by 'unlistifyParagraph'. | |
612 // This element can be selected by mostBackwardCaretPosition when startPor | |
613 // points to a element with previous siblings or ancestors with siblings. | |
614 // |-A | |
615 // | |-B | |
616 // | +-C (insertion point) | |
617 // | |-D (*) | |
618 if (isHTMLSpanElement(insertionPos.anchorNode())) | |
yosin_UTC9
2017/03/21 05:37:20
Could you use Position::computeContainerNode() ins
jfernandez
2017/03/24 01:57:55
Done.
| |
619 insertionPos = Position::inParentBeforeNode(*insertionPos.anchorNode()); | |
611 // Also avoid the containing list item. | 620 // Also avoid the containing list item. |
612 Node* const listChild = enclosingListChild(insertionPos.anchorNode()); | 621 Node* const listChild = enclosingListChild(insertionPos.anchorNode()); |
613 if (isHTMLLIElement(listChild)) | 622 if (isHTMLLIElement(listChild)) |
614 insertionPos = Position::inParentBeforeNode(*listChild); | 623 insertionPos = Position::inParentBeforeNode(*listChild); |
615 | 624 |
616 HTMLElement* listElement = createHTMLElement(document(), listTag); | 625 HTMLElement* listElement = createHTMLElement(document(), listTag); |
617 insertNodeAt(listElement, insertionPos, editingState); | 626 insertNodeAt(listElement, insertionPos, editingState); |
618 if (editingState->isAborted()) | 627 if (editingState->isAborted()) |
619 return; | 628 return; |
620 HTMLLIElement* listItemElement = HTMLLIElement::create(document()); | 629 HTMLLIElement* listItemElement = HTMLLIElement::create(document()); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
663 endOfParagraph(validPos, CanSkipOverEditingBoundary); | 672 endOfParagraph(validPos, CanSkipOverEditingBoundary); |
664 moveParagraph(start, end, VisiblePosition::beforeNode(placeholder), | 673 moveParagraph(start, end, VisiblePosition::beforeNode(placeholder), |
665 editingState, PreserveSelection); | 674 editingState, PreserveSelection); |
666 } | 675 } |
667 | 676 |
668 DEFINE_TRACE(InsertListCommand) { | 677 DEFINE_TRACE(InsertListCommand) { |
669 CompositeEditCommand::trace(visitor); | 678 CompositeEditCommand::trace(visitor); |
670 } | 679 } |
671 | 680 |
672 } // namespace blink | 681 } // namespace blink |
OLD | NEW |