LayoutTests:

        Reviewed by john

        <rdar://problem/5032066> <Delete> should work between To Dos

        Demonstrates the fix:
        * editing/deleting/5032066-expected.checksum: Added.
        * editing/deleting/5032066-expected.png: Added.
        * editing/deleting/5032066-expected.txt: Added.
        * editing/deleting/5032066.html: Added.
        
        Fixed:
        * editing/deleting/delete-block-table-expected.checksum:
        * editing/deleting/delete-block-table-expected.png:
        * editing/deleting/delete-block-table-expected.txt:
        
        shouldInsertNode:... now being called during moves:
        * editing/deleting/delete-3857753-fix-expected.txt:
        * editing/deleting/delete-at-paragraph-boundaries-003-expected.txt:
        * editing/deleting/delete-at-paragraph-boundaries-007-expected.txt:
        * editing/deleting/delete-at-paragraph-boundaries-009-expected.txt:
        * editing/deleting/delete-block-merge-contents-001-expected.txt:
        * editing/deleting/delete-block-merge-contents-002-expected.txt:
        * editing/deleting/delete-block-merge-contents-003-expected.txt:
        * editing/deleting/delete-block-merge-contents-004-expected.txt:
        * editing/deleting/delete-block-merge-contents-005-expected.txt:
        * editing/deleting/delete-block-merge-contents-006-expected.txt:
        * editing/deleting/delete-block-merge-contents-007-expected.txt:
        * editing/deleting/delete-block-merge-contents-008-expected.txt:
        * editing/deleting/delete-block-merge-contents-009-expected.txt:
        * editing/deleting/delete-block-merge-contents-010-expected.txt:
        * editing/deleting/delete-block-merge-contents-012-expected.txt:
        * editing/deleting/delete-block-merge-contents-013-expected.txt:
        * editing/deleting/delete-block-merge-contents-014-expected.txt:
        * editing/deleting/delete-block-merge-contents-015-expected.txt:
        * editing/deleting/delete-block-merge-contents-016-expected.txt:
        * editing/deleting/delete-block-merge-contents-017-expected.txt:
        * editing/deleting/delete-block-merge-contents-018-expected.txt:
        * editing/deleting/delete-block-merge-contents-019-expected.txt:
        * editing/deleting/delete-block-merge-contents-020-expected.txt:
        * editing/deleting/delete-block-merge-contents-021-expected.txt:
        * editing/deleting/delete-block-merge-contents-022-expected.txt:
        * editing/deleting/delete-br-010-expected.txt:
        * editing/deleting/delete-line-002-expected.txt:
        * editing/deleting/delete-line-004-expected.txt:
        * editing/deleting/delete-line-006-expected.txt:
        * editing/deleting/delete-line-007-expected.txt:
        * editing/deleting/delete-line-008-expected.txt:
        * editing/deleting/delete-line-011-expected.txt:
        * editing/deleting/delete-line-012-expected.txt:
        * editing/deleting/delete-listitem-001-expected.txt:
        * editing/deleting/delete-to-end-of-paragraph-expected.txt:
        * editing/deleting/merge-different-styles-expected.txt:
        * editing/deleting/merge-no-br-expected.txt:
        * editing/deleting/pruning-after-merge-1-expected.txt:
        * editing/deleting/pruning-after-merge-2-expected.txt:
        * editing/execCommand/create-list-from-range-selection-expected.txt:
        * editing/execCommand/create-list-with-hr-expected.txt:
        * editing/execCommand/format-block-expected.txt:
        * editing/execCommand/format-block-from-range-selection-expected.txt:
        * editing/execCommand/format-block-with-braces-expected.txt:
        * editing/execCommand/format-block-with-trailing-br-expected.txt:
        * editing/execCommand/indent-list-item-expected.txt:
        * editing/execCommand/indent-selection-expected.txt:
        * editing/execCommand/insert-list-and-stitch-expected.txt:
        * editing/execCommand/insert-list-with-id-expected.txt:
        * editing/execCommand/nsresponder-indent-expected.txt:
        * editing/execCommand/outdent-selection-expected.txt:
        * editing/execCommand/queryCommandState-01-expected.txt:
        * editing/execCommand/remove-list-1-expected.txt:
        * editing/execCommand/remove-list-from-range-selection-expected.txt:
        * editing/execCommand/remove-list-item-1-expected.txt:
        * editing/execCommand/remove-list-items-expected.txt:
        * editing/execCommand/switch-list-type-expected.txt:
        * editing/inserting/insert-3907422-fix-expected.txt:
        * editing/inserting/insert-div-026-expected.txt:
        * editing/inserting/multiple-lines-selected-expected.txt:
        * editing/inserting/return-key-with-selection-001-expected.txt:
        * editing/inserting/return-key-with-selection-002-expected.txt:
        * editing/pasteboard/4076267-2-expected.txt:
        * editing/pasteboard/4700297-expected.txt:
        * editing/pasteboard/8145-3-expected.txt:
        * editing/pasteboard/display-block-on-spans-expected.txt:
        * editing/pasteboard/emacs-ctrl-k-y-001-expected.txt:
        * editing/pasteboard/interchange-newline-1-expected.txt:
        * editing/pasteboard/interchange-newline-2-expected.txt:
        * editing/pasteboard/merge-after-delete-1-expected.txt:
        * editing/pasteboard/merge-after-delete-2-expected.txt:
        * editing/pasteboard/merge-after-delete-expected.txt:
        * editing/pasteboard/merge-end-1-expected.txt:
        * editing/pasteboard/merge-end-2-expected.txt:
        * editing/pasteboard/merge-end-3-expected.txt:
        * editing/pasteboard/merge-end-4-expected.txt:
        * editing/pasteboard/merge-end-5-expected.txt:
        * editing/pasteboard/merge-end-blockquote-expected.txt:
        * editing/pasteboard/merge-end-borders-expected.txt:
        * editing/pasteboard/merge-end-list-expected.txt:
        * editing/pasteboard/merge-end-table-expected.txt:
        * editing/pasteboard/paste-line-endings-007-expected.txt:
        * editing/pasteboard/paste-line-endings-008-expected.txt:
        * editing/pasteboard/paste-line-endings-009-expected.txt:
        * editing/pasteboard/paste-match-style-001-expected.txt:
        * editing/pasteboard/paste-text-002-expected.txt:
        * editing/pasteboard/paste-text-003-expected.txt:
        * editing/pasteboard/paste-text-004-expected.txt:
        * editing/pasteboard/paste-text-005-expected.txt:
        * editing/pasteboard/paste-text-006-expected.txt:
        * editing/pasteboard/paste-text-008-expected.txt:
        * editing/pasteboard/paste-text-009-expected.txt:
        * editing/pasteboard/paste-text-010-expected.txt:
        * editing/pasteboard/smart-paste-001-expected.txt:
        * editing/pasteboard/smart-paste-002-expected.txt:
        * editing/pasteboard/smart-paste-003-expected.txt:
        * editing/pasteboard/smart-paste-004-expected.txt:
        * editing/pasteboard/smart-paste-005-expected.txt:
        * editing/pasteboard/smart-paste-006-expected.txt:
        * editing/pasteboard/smart-paste-007-expected.txt:
        * editing/pasteboard/smart-paste-008-expected.txt:
        * editing/style/create-block-for-style-001-expected.txt:
        * editing/style/create-block-for-style-002-expected.txt:
        * editing/style/create-block-for-style-003-expected.txt:
        * editing/style/create-block-for-style-004-expected.txt:
        * editing/style/create-block-for-style-007-expected.txt:
        * editing/style/create-block-for-style-009-expected.txt:
        * editing/style/create-block-for-style-010-expected.txt:
        * editing/style/create-block-for-style-011-expected.txt:
        * editing/style/create-block-for-style-012-expected.txt:
        * editing/style/create-block-for-style-013-expected.txt:
        * editing/style/smoosh-styles-001-expected.txt:
        * editing/style/smoosh-styles-002-expected.txt:
        * editing/style/style-boundary-005-expected.txt:
        * editing/unsupported-content/list-delete-001-expected.txt:

WebCore:

        Reviewed by john

        <rdar://problem/5032066> Delete should work between ToDos
        
        Stop selecting the table when the user attempts to delete
        the line break just after it, instead, extend the selection
        into the last table cell.
        Let deletion merge content into table cells (as long as 
        its not from another table cell).  
        Start calling shouldInsertNode:replacingDOMRange:givenAction: 
        when moving content with moveParagraphs, so that Mail can 
        modify content before it is moved into a ToDo during a delete.

        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::moveParagraphs): Ask the
        delegate before performing the move.  This will let Mail
        prevent styles from entering a ToDo.
        Added a FIXME about adding a new WebViewInsertAction
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::initializePositionData):
        Allow merging into table cells from content not in a table.
        * editing/SelectionController.cpp:
        (WebCore::SelectionController::modifyExtendingRightForward):
        Don't select the table when extending by character/word from
        just before it.  This code was here to make it easier to select
        tables in order to delete them, but the deletion UI makes it 
        largely unnecessary.
        (WebCore::SelectionController::modifyExtendingLeftBackward):
        Ditto.
        * editing/TypingCommand.cpp:
        (WebCore::isFirstPositionAfterTable): Added.
        (WebCore::isLastPositionBeforeTable): Ditto.
        (WebCore::TypingCommand::deleteKeyPressed): When pressing
        the delete key with a caret at the beginning of a paragraph
        just after a table, move the paragraph into the last table
        cell.
        Do not do this if it would mean moving a block table.
        Removed some old irrelevant comments.
        * editing/htmlediting.cpp: Removed unused functions.
        * editing/htmlediting.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@20591 268f45cc-cd09-0410-ab3c-d52691b4dbfc
129 files changed