Changeset 220398 in webkit
- Timestamp:
- Aug 8, 2017 5:22:33 AM (7 years ago)
- Location:
- trunk
- Files:
-
- 16 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r220393 r220398 1 2017-08-08 Javier Fernandez <jfernandez@igalia.com> 2 3 Not possible to remove the 'li' element inside the table cell 4 https://bugs.webkit.org/show_bug.cgi?id=173148 5 6 Reviewed by Ryosuke Niwa. 7 8 Regression tests for different scenarios of list items removal. 9 10 * editing/deleting/delete-list-items-in-table-cell-1-expected.txt: Added. 11 * editing/deleting/delete-list-items-in-table-cell-1.html: Added. 12 * editing/deleting/delete-list-items-in-table-cell-2-expected.txt: Added. 13 * editing/deleting/delete-list-items-in-table-cell-2.html: Added. 14 * editing/deleting/delete-list-items-in-table-cell-3-expected.txt: Added. 15 * editing/deleting/delete-list-items-in-table-cell-3.html: Added. 16 * editing/deleting/delete-list-items-in-table-cell-4-expected.txt: Added. 17 * editing/deleting/delete-list-items-in-table-cell-4.html: Added. 18 * editing/deleting/delete-list-items-in-table-cell-5-expected.txt: Added. 19 * editing/deleting/delete-list-items-in-table-cell-5.html: Added. 20 * editing/deleting/delete-list-items-in-table-cell-6-expected.txt: Added. 21 * editing/deleting/delete-list-items-in-table-cell-6.html: Added. 22 * editing/deleting/delete-list-items-in-table-cell-7-expected.txt: Added. 23 * editing/deleting/delete-list-items-in-table-cell-7.html: Added. 24 * editing/deleting/delete-list-items-in-table-cell-8-expected.txt: Added. 25 * editing/deleting/delete-list-items-in-table-cell-8.html: Added. 26 1 27 2017-08-08 Wenson Hsieh <wenson_hsieh@apple.com> 2 28 -
trunk/Source/WebCore/ChangeLog
r220397 r220398 1 2017-08-08 Javier Fernandez <jfernandez@igalia.com> 2 3 Not possible to remove the 'li' element inside the table cell 4 https://bugs.webkit.org/show_bug.cgi?id=173148 5 6 Reviewed by Ryosuke Niwa. 7 8 We need to add a new case for breaking out empty list items when they are 9 at the start of an editable area. Since list items can be also inside 10 table cells, we need to consider this kind of elements as well. 11 12 Tests: editing/deleting/delete-list-items-in-table-cell-1.html 13 editing/deleting/delete-list-items-in-table-cell-2.html 14 editing/deleting/delete-list-items-in-table-cell-3.html 15 editing/deleting/delete-list-items-in-table-cell-4.html 16 editing/deleting/delete-list-items-in-table-cell-5.html 17 editing/deleting/delete-list-items-in-table-cell-6.html 18 editing/deleting/delete-list-items-in-table-cell-7.html 19 editing/deleting/delete-list-items-in-table-cell-8.html 20 21 * editing/TypingCommand.cpp: 22 (WebCore::TypingCommand::deleteKeyPressed): 23 1 24 2017-08-08 Zan Dobersek <zdobersek@igalia.com> 2 25 -
trunk/Source/WebCore/editing/TypingCommand.cpp
r216351 r220398 670 670 selection.modify(FrameSelection::AlterationExtend, DirectionBackward, CharacterGranularity); 671 671 672 if (endingSelection().visibleStart().previous(CannotCrossEditingBoundary).isNull()) { 672 const VisiblePosition& visibleStart = endingSelection().visibleStart(); 673 const VisiblePosition& previousPosition = visibleStart.previous(CannotCrossEditingBoundary); 674 Node* enclosingTableCell = enclosingNodeOfType(visibleStart.deepEquivalent(), &isTableCell); 675 const Node* enclosingTableCellForPreviousPosition = enclosingNodeOfType(previousPosition.deepEquivalent(), &isTableCell); 676 if (previousPosition.isNull() || enclosingTableCell != enclosingTableCellForPreviousPosition) { 673 677 // When the caret is at the start of the editable area in an empty list item, break out of the list item. 674 678 if (auto deleteListSelection = shouldBreakOutOfEmptyListItem()) { … … 679 683 return; 680 684 } 685 } 686 if (previousPosition.isNull()) { 681 687 // When there are no visible positions in the editing root, delete its entire contents. 682 688 // FIXME: Dispatch a `beforeinput` event here and bail if preventDefault() was invoked. 683 if ( endingSelection().visibleStart().next(CannotCrossEditingBoundary).isNull() && makeEditableRootEmpty()) {689 if (visibleStart.next(CannotCrossEditingBoundary).isNull() && makeEditableRootEmpty()) { 684 690 typingAddedToOpenCommand(DeleteKey); 685 691 return; … … 687 693 } 688 694 689 VisiblePosition visibleStart(endingSelection().visibleStart());690 695 // If we have a caret selection at the beginning of a cell, we have nothing to do. 691 Node* enclosingTableCell = enclosingNodeOfType(visibleStart.deepEquivalent(), &isTableCell);692 696 if (enclosingTableCell && visibleStart == firstPositionInNode(enclosingTableCell)) 693 697 return;
Note: See TracChangeset
for help on using the changeset viewer.