Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 594 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 605 if (tableElementJustAfter(visibleStart)) | 605 if (tableElementJustAfter(visibleStart)) |
| 606 return; | 606 return; |
| 607 // Extend the selection backward into the last cell, then deletion will | 607 // Extend the selection backward into the last cell, then deletion will |
| 608 // handle the move. | 608 // handle the move. |
| 609 selectionModifier.modify(FrameSelection::AlterationExtend, | 609 selectionModifier.modify(FrameSelection::AlterationExtend, |
| 610 DirectionBackward, granularity); | 610 DirectionBackward, granularity); |
| 611 // If the caret is just after a table, select the table and don't delete | 611 // If the caret is just after a table, select the table and don't delete |
| 612 // anything. | 612 // anything. |
| 613 } else if (Element* table = tableElementJustBefore(visibleStart)) { | 613 } else if (Element* table = tableElementJustBefore(visibleStart)) { |
| 614 setEndingSelection(createVisibleSelection( | 614 setEndingSelection(createVisibleSelection( |
| 615 Position::beforeNode(table), endingSelection().start(), | 615 SelectionInDOMTree::Builder() |
| 616 TextAffinity::Downstream, endingSelection().isDirectional())); | 616 .setBaseAndExtentDeprecated(Position::beforeNode(table), |
|
Xiaocheng
2016/10/26 05:49:18
We can use |setBaseAndExtent| since Position::befo
yosin_UTC9
2016/10/26 07:43:07
Done.
| |
| 617 endingSelection().start()) | |
| 618 .setIsDirectional(endingSelection().isDirectional()) | |
| 619 .build())); | |
| 617 typingAddedToOpenCommand(DeleteKey); | 620 typingAddedToOpenCommand(DeleteKey); |
| 618 return; | 621 return; |
| 619 } | 622 } |
| 620 | 623 |
| 621 selectionToDelete = selectionModifier.selection(); | 624 selectionToDelete = selectionModifier.selection(); |
| 622 | 625 |
| 623 if (granularity == CharacterGranularity && | 626 if (granularity == CharacterGranularity && |
| 624 selectionToDelete.end().computeContainerNode() == | 627 selectionToDelete.end().computeContainerNode() == |
| 625 selectionToDelete.start().computeContainerNode() && | 628 selectionToDelete.start().computeContainerNode() && |
| 626 selectionToDelete.end().computeOffsetInContainerNode() - | 629 selectionToDelete.end().computeOffsetInContainerNode() - |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 723 if (visibleEnd.deepEquivalent() == | 726 if (visibleEnd.deepEquivalent() == |
| 724 endOfParagraph(visibleEnd).deepEquivalent()) | 727 endOfParagraph(visibleEnd).deepEquivalent()) |
| 725 downstreamEnd = mostForwardCaretPosition( | 728 downstreamEnd = mostForwardCaretPosition( |
| 726 nextPositionOf(visibleEnd, CannotCrossEditingBoundary) | 729 nextPositionOf(visibleEnd, CannotCrossEditingBoundary) |
| 727 .deepEquivalent()); | 730 .deepEquivalent()); |
| 728 // When deleting tables: Select the table first, then perform the deletion | 731 // When deleting tables: Select the table first, then perform the deletion |
| 729 if (isDisplayInsideTable(downstreamEnd.computeContainerNode()) && | 732 if (isDisplayInsideTable(downstreamEnd.computeContainerNode()) && |
| 730 downstreamEnd.computeOffsetInContainerNode() <= | 733 downstreamEnd.computeOffsetInContainerNode() <= |
| 731 caretMinOffset(downstreamEnd.computeContainerNode())) { | 734 caretMinOffset(downstreamEnd.computeContainerNode())) { |
| 732 setEndingSelection(createVisibleSelection( | 735 setEndingSelection(createVisibleSelection( |
| 733 endingSelection().end(), | 736 SelectionInDOMTree::Builder() |
| 734 Position::afterNode(downstreamEnd.computeContainerNode()), | 737 .setBaseAndExtentDeprecated( |
| 735 TextAffinity::Downstream, endingSelection().isDirectional())); | 738 endingSelection().end(), |
| 739 Position::afterNode(downstreamEnd.computeContainerNode())) | |
| 740 .setIsDirectional(endingSelection().isDirectional()) | |
| 741 .build())); | |
| 736 typingAddedToOpenCommand(ForwardDeleteKey); | 742 typingAddedToOpenCommand(ForwardDeleteKey); |
| 737 return; | 743 return; |
| 738 } | 744 } |
| 739 | 745 |
| 740 // deleting to end of paragraph when at end of paragraph needs to merge | 746 // deleting to end of paragraph when at end of paragraph needs to merge |
| 741 // the next paragraph (if any) | 747 // the next paragraph (if any) |
| 742 if (granularity == ParagraphBoundary && | 748 if (granularity == ParagraphBoundary && |
| 743 selectionModifier.selection().isCaret() && | 749 selectionModifier.selection().isCaret() && |
| 744 isEndOfParagraph(selectionModifier.selection().visibleEnd())) | 750 isEndOfParagraph(selectionModifier.selection().visibleEnd())) |
| 745 selectionModifier.modify(FrameSelection::AlterationExtend, | 751 selectionModifier.modify(FrameSelection::AlterationExtend, |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 827 } | 833 } |
| 828 NOTREACHED(); | 834 NOTREACHED(); |
| 829 m_preservesTypingStyle = false; | 835 m_preservesTypingStyle = false; |
| 830 } | 836 } |
| 831 | 837 |
| 832 bool TypingCommand::isTypingCommand() const { | 838 bool TypingCommand::isTypingCommand() const { |
| 833 return true; | 839 return true; |
| 834 } | 840 } |
| 835 | 841 |
| 836 } // namespace blink | 842 } // namespace blink |
| OLD | NEW |