-
justing authored
Reviewed by thatcher Setup for <rdar://problem/4344550> Misspellings aren't marked after undo delete Fixed: * editing/pasteboard/4641033-expected.checksum: * editing/pasteboard/4641033-expected.png: * editing/execCommand/outdent-selection-expected.checksum: * editing/execCommand/outdent-selection-expected.png: Added a didChangeSelection notification that was absent before: * editing/deleting/collapse-whitespace-3587601-fix-expected.txt: * editing/deleting/delete-3608430-fix-expected.txt: * editing/deleting/delete-3608462-fix-expected.txt: * editing/deleting/delete-3775172-fix-expected.txt: * editing/deleting/delete-3800834-fix-expected.txt: * editing/deleting/delete-3857753-fix-expected.txt: * editing/deleting/delete-3865854-fix-expected.txt: * editing/deleting/delete-3928305-fix-expected.txt: * editing/deleting/delete-3959464-fix-expected.txt: * editing/deleting/delete-4038408-fix-expected.txt: * editing/deleting/delete-all-text-in-text-field-assertion-expected.txt: * editing/deleting/delete-at-paragraph-boundaries-001-expected.txt: * editing/deleting/delete-at-paragraph-boundaries-002-expected.txt: * editing/deleting/delete-at-paragraph-boundaries-003-expected.txt: * editing/deleting/delete-at-paragraph-boundaries-004-expected.txt: * editing/deleting/delete-at-paragraph-boundaries-005-expected.txt: * editing/deleting/delete-at-paragraph-boundaries-006-expected.txt: * editing/deleting/delete-at-paragraph-boundaries-007-expected.txt: * editing/deleting/delete-at-paragraph-boundaries-009-expected.txt: * editing/deleting/delete-at-paragraph-boundaries-010-expected.txt: * editing/deleting/delete-at-paragraph-boundaries-011-expected.txt: * editing/deleting/delete-block-contents-001-expected.txt: * editing/deleting/delete-block-contents-002-expected.txt: * editing/deleting/delete-block-contents-003-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-block-merge-contents-023-expected.txt: * editing/deleting/delete-block-merge-contents-024-expected.txt: * editing/deleting/delete-block-table-expected.txt: * editing/deleting/delete-br-008-expected.txt: * editing/deleting/delete-br-010-expected.txt: * editing/deleting/delete-br-011-expected.txt: * editing/deleting/delete-first-list-item-expected.txt: * editing/deleting/delete-image-001-expected.txt: * editing/deleting/delete-image-002-expected.txt: * editing/deleting/delete-image-003-expected.txt: * editing/deleting/delete-image-004-expected.txt: * editing/deleting/delete-line-001-expected.txt: * editing/deleting/delete-line-002-expected.txt: * editing/deleting/delete-line-003-expected.txt: * editing/deleting/delete-line-004-expected.txt: * editing/deleting/delete-line-005-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-009-expected.txt: * editing/deleting/delete-line-010-expected.txt: * editing/deleting/delete-line-011-expected.txt: * editing/deleting/delete-line-012-expected.txt: * editing/deleting/delete-line-013-expected.txt: * editing/deleting/delete-line-014-expected.txt: * editing/deleting/delete-line-015-expected.txt: * editing/deleting/delete-line-016-expected.txt: * editing/deleting/delete-line-017-expected.txt: * editing/deleting/delete-listitem-001-expected.txt: * editing/deleting/delete-listitem-002-expected.txt: * editing/deleting/delete-mixed-editable-content-001-expected.txt: * editing/deleting/delete-select-all-001-expected.txt: * editing/deleting/delete-select-all-002-expected.txt: * editing/deleting/delete-select-all-003-expected.txt: * editing/deleting/merge-different-styles-expected.txt: * editing/deleting/merge-endOfParagraph-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/deleting/table-cells-expected.txt: * editing/execCommand/boldSelection-expected.txt: * editing/execCommand/create-list-from-range-selection-expected.txt: * editing/execCommand/createLink-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/hilitecolor-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/insertHTML-expected.txt: * editing/execCommand/insertHorizontalRule-expected.txt: * editing/execCommand/remove-formatting-expected.txt: * editing/execCommand/remove-list-from-range-selection-expected.txt: * editing/execCommand/remove-list-items-expected.txt: * editing/execCommand/strikethroughSelection-expected.txt: * editing/execCommand/switch-list-type-expected.txt: * editing/execCommand/unlink-expected.txt: * editing/input/text-input-controller-expected.txt: * editing/inserting/insert-3654864-fix-expected.txt: * editing/inserting/insert-3659587-fix-expected.txt: * editing/inserting/insert-3775316-fix-expected.txt: * editing/inserting/insert-3851164-fix-expected.txt: * editing/inserting/insert-3907422-fix-expected.txt: * editing/inserting/insert-after-delete-001-expected.txt: * editing/inserting/insert-div-001-expected.txt: * editing/inserting/insert-div-002-expected.txt: * editing/inserting/insert-div-003-expected.txt: * editing/inserting/insert-div-005-expected.txt: * editing/inserting/insert-div-007-expected.txt: * editing/inserting/insert-div-009-expected.txt: * editing/inserting/insert-div-010-expected.txt: * editing/inserting/insert-div-020-expected.txt: * editing/inserting/insert-div-023-expected.txt: * editing/inserting/insert-div-024-expected.txt: * editing/inserting/insert-div-025-expected.txt: * editing/inserting/insert-div-026-expected.txt: * editing/inserting/multiple-lines-selected-expected.txt: * editing/inserting/paragraph-separator-03-expected.txt: * editing/inserting/paragraph-separator-in-table-2-expected.txt: * editing/inserting/redo-expected.txt: * editing/inserting/return-key-with-selection-001-expected.txt: * editing/inserting/return-key-with-selection-002-expected.txt: * editing/inserting/return-key-with-selection-003-expected.txt: * editing/pasteboard/3976872-expected.txt: * editing/pasteboard/4076267-3-expected.txt: * editing/pasteboard/4076267-expected.txt: * editing/pasteboard/4700297-expected.txt: * editing/pasteboard/8145-3-expected.txt: * editing/pasteboard/block-wrappers-necessary-expected.txt: * editing/pasteboard/copy-paste-bidi-expected.txt: * editing/pasteboard/displaced-generic-placeholder-expected.txt: * editing/pasteboard/displaced-placeholder-expected.txt: * editing/pasteboard/display-block-on-spans-expected.txt: * editing/pasteboard/drag-drop-modifies-page-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-3-expected.txt: * editing/pasteboard/merge-end-5-expected.txt: * editing/pasteboard/merge-end-blockquote-expected.txt: * editing/pasteboard/merge-end-list-expected.txt: * editing/pasteboard/merge-end-table-expected.txt: * editing/pasteboard/paste-4035648-fix-expected.txt: * editing/pasteboard/paste-4039777-fix-expected.txt: * editing/pasteboard/paste-line-endings-001-expected.txt: * editing/pasteboard/paste-line-endings-006-expected.txt: * editing/pasteboard/paste-match-style-001-expected.txt: * editing/pasteboard/paste-match-style-002-expected.txt: * editing/pasteboard/paste-pre-001-expected.txt: * editing/pasteboard/paste-pre-002-expected.txt: * editing/pasteboard/paste-table-002-expected.txt: * editing/pasteboard/paste-table-003-expected.txt: * editing/pasteboard/paste-text-006-expected.txt: * editing/pasteboard/paste-text-007-expected.txt: * editing/pasteboard/paste-text-010-expected.txt: * editing/pasteboard/paste-text-011-expected.txt: * editing/pasteboard/paste-text-015-expected.txt: * editing/pasteboard/paste-text-016-expected.txt: * editing/pasteboard/paste-text-017-expected.txt: * editing/pasteboard/paste-text-018-expected.txt: * editing/pasteboard/prevent-block-nesting-01-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/pasteboard/testcase-9507-expected.txt: * editing/pasteboard/undoable-fragment-removes-expected.txt: * editing/selection/expanding-selections-expected.txt: * editing/selection/expanding-selections2-expected.txt: * editing/selection/node-removal-1-expected.txt: * editing/selection/node-removal-2-expected.txt: * editing/selection/select-all-iframe-expected.txt: * editing/selection/skip-non-editable-1-expected.txt: * editing/selection/triple-click-in-pre-expected.txt: * editing/style/apple-style-editable-mix-expected.txt: * editing/style/block-style-004-expected.txt: * editing/style/block-style-005-expected.txt: * editing/style/block-style-006-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/designmode-expected.txt: * editing/style/relative-font-size-change-001-expected.txt: * editing/style/relative-font-size-change-002-expected.txt: * editing/style/remove-underline-across-paragraph-expected.txt: * editing/style/remove-underline-across-paragraph-in-bold-expected.txt: * editing/style/remove-underline-after-paragraph-expected.txt: * editing/style/remove-underline-after-paragraph-in-bold-expected.txt: * editing/style/remove-underline-from-stylesheet-expected.txt: * editing/style/smoosh-styles-001-expected.txt: * editing/style/smoosh-styles-002-expected.txt: * editing/style/smoosh-styles-003-expected.txt: * editing/style/style-3681552-fix-001-expected.txt: * editing/style/style-3681552-fix-002-expected.txt: * editing/style/style-3690704-fix-expected.txt: * editing/style/style-3998892-fix-expected.txt: * editing/style/style-boundary-001-expected.txt: * editing/style/style-boundary-003-expected.txt: * editing/style/style-boundary-004-expected.txt: * editing/style/typing-style-001-expected.txt: * editing/style/typing-style-003-expected.txt: * editing/undo/undo-misspellings-expected.txt: * editing/unsupported-content/list-delete-001-expected.txt: * editing/unsupported-content/list-delete-002-expected.txt: * editing/unsupported-content/list-delete-003-expected.txt: * editing/unsupported-content/table-delete-001-expected.txt: * editing/unsupported-content/table-delete-002-expected.txt: * editing/unsupported-content/table-delete-003-expected.txt: * fast/forms/attributed-strings-expected.txt: * fast/forms/cursor-position-expected.txt: * fast/forms/drag-into-textarea-expected.txt: * fast/forms/input-appearance-maxlength-expected.txt: * fast/forms/input-paste-undo-expected.txt: * fast/forms/input-selection-restore-expected.txt: * fast/forms/input-text-paste-maxlength-expected.txt: * fast/forms/selection-functions-expected.txt: * fast/forms/text-field-setvalue-crash-expected.txt: * fast/forms/textarea-paste-newline-expected.txt: WebCore: Reviewed by thatcher Setup for <rdar://problem/4344550> Misspellings aren't marked after undo delete Fixes: <http://bugzilla.opendarwin.org/show_bug.cgi?id=6498> SelectionController's setters should notify delegates of selection changes Moved setSelection from Frame to SelectionController. I haven't moved any of the work that's done as a result of a Selection change to SelectionController yet. Make fewer uses of SelectionControllers. They're now only used for the Frame's selection, the Page's drag caret, and functions that need to do Selection expansion. * bindings/js/kjs_window.cpp: (KJS::Selection::getValueProperty): (KJS::Selection::toString): (KJS::SelectionFunc::callAsFunction): * bridge/mac/FrameMac.h: * bridge/mac/FrameMac.mm: (WebCore::FrameMac::advanceToNextMisspelling): (WebCore::FrameMac::dispatchCPPEvent): (WebCore::FrameMac::fontForSelection): (WebCore::FrameMac::baseWritingDirectionForSelectionStart): (WebCore::FrameMac::markMisspellingsInAdjacentWords): (WebCore::FrameMac::markMisspellings): (WebCore::FrameMac::respondToChangedSelection): (WebCore::FrameMac::shouldChangeSelection): (WebCore::FrameMac::shouldDeleteSelection): (WebCore::FrameMac::respondToChangedContents): * bridge/mac/PageMac.mm: (WebCore::Page::Page): * bridge/mac/WebCoreAXObject.mm: (-[WebCoreAXObject accessibilityAttributeValue:]): (-[WebCoreAXObject doAXTextMarkerRangeForLine:]): (-[WebCoreAXObject doAXBoundsForTextMarkerRange:]): (-[WebCoreAXObject doAXTextMarkerRangeForUnorderedTextMarkers:]): (-[WebCoreAXObject doSetAXSelectedTextMarkerRange:]): * bridge/mac/WebCoreFrameBridge.mm: (-[WebCoreFrameBridge isSelectionEditable]): (-[WebCoreFrameBridge isSelectionRichlyEditable]): (-[WebCoreFrameBridge selectionState]): (-[WebCoreFrameBridge deselectText]): (-[WebCoreFrameBridge selectedAttributedString]): (-[WebCoreFrameBridge rangeByExpandingSelectionWithGranularity:]): (-[WebCoreFrameBridge rangeByAlteringCurrentSelection:direction:granularity:]): (-[WebCoreFrameBridge alterCurrentSelection:direction:granularity:]): (-[WebCoreFrameBridge rangeByAlteringCurrentSelection:verticalDistance:]): (-[WebCoreFrameBridge alterCurrentSelection:verticalDistance:]): (-[WebCoreFrameBridge setSelectedDOMRange:affinity:closeTyping:]): (-[WebCoreFrameBridge selectedDOMRange]): (-[WebCoreFrameBridge selectNSRange:]): (-[WebCoreFrameBridge selectedNSRange]): (-[WebCoreFrameBridge selectionAffinity]): (-[WebCoreFrameBridge replaceSelectionWithText:selectReplacement:smartReplace:]): (-[WebCoreFrameBridge setSelectionToDragCaret]): (-[WebCoreFrameBridge moveSelectionToDragCaret:smartMove:]): (-[WebCoreFrameBridge moveDragCaretToPoint:]): (-[WebCoreFrameBridge removeDragCaret]): (-[WebCoreFrameBridge dragCaretDOMRange]): (-[WebCoreFrameBridge isDragCaretRichlyEditable]): (-[WebCoreFrameBridge editableDOMRangeForPoint:]): (-[WebCoreFrameBridge ensureSelectionVisible]): (-[WebCoreFrameBridge rangeOfCharactersAroundCaret]): * bridge/win/PageWin.cpp: (WebCore::Page::Page): * dom/Document.cpp: (WebCore::Document::updateSelection): (WebCore::Document::clearSelectionIfNeeded): (WebCore::Document::notifyBeforeNodeRemoval): * dom/Element.cpp: (WebCore::Element::updateFocusAppearance): * editing/EditCommand.cpp: (WebCore::EditCommand::EditCommand): * editing/JSEditor.cpp: * editing/ModifySelectionListLevel.cpp: (WebCore::IncreaseSelectionListLevelCommand::canIncreaseSelectionListLevel): (WebCore::DecreaseSelectionListLevelCommand::canDecreaseSelectionListLevel): * editing/Selection.cpp: (WebCore::Selection::setBase): (WebCore::Selection::setExtent): * editing/Selection.h: (WebCore::Selection::extent): * editing/SelectionController.cpp: (WebCore::SelectionController::SelectionController): (WebCore::SelectionController::moveTo): (WebCore::SelectionController::setSelection): (WebCore::SelectionController::nodeWillBeRemoved): (WebCore::SelectionController::modify): (WebCore::SelectionController::clear): (WebCore::SelectionController::setBase): (WebCore::SelectionController::setExtent): * editing/SelectionController.h: * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertText): (WebCore::TypingCommand::deleteKeyPressed): (WebCore::TypingCommand::forwardDeleteKeyPressed): * editing/VisiblePosition.cpp: (WebCore::VisiblePosition::caretRect): * editing/VisiblePosition.h: * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler): * page/Frame.cpp: (WebCore::Frame::selectedText): (WebCore::Frame::hasSelection): (WebCore::Frame::selectionController): (WebCore::Frame::dragCaretController): (WebCore::Frame::notifyRendererOfSelectionChange): (WebCore::Frame::invalidateSelection): (WebCore::Frame::clearCaretRectIfNeeded): (WebCore::Frame::setFocusNodeIfNeeded): (WebCore::Frame::selectionLayoutChanged): (WebCore::Frame::caretBlinkTimerFired): (WebCore::Frame::paintCaret): (WebCore::Frame::paintDragCaret): (WebCore::Frame::isPointInsideSelection): (WebCore::Frame::selectClosestWordFromMouseEvent): (WebCore::Frame::handleMousePressEventDoubleClick): (WebCore::Frame::handleMousePressEventTripleClick): (WebCore::Frame::handleMousePressEventSingleClick): (WebCore::Frame::handleMouseMoveEvent): (WebCore::Frame::handleMouseReleaseEvent): (WebCore::Frame::selectAll): (WebCore::Frame::selectContentsOfNode): (WebCore::Frame::shouldChangeSelection): (WebCore::Frame::shouldDeleteSelection): (WebCore::Frame::isSelectionInPasswordField): (WebCore::Frame::appliedEditing): (WebCore::Frame::unappliedEditing): (WebCore::Frame::reappliedEditing): (WebCore::Frame::computeAndSetTypingStyle): (WebCore::Frame::applyStyle): (WebCore::Frame::applyParagraphStyle): (WebCore::Frame::selectionListState): (WebCore::Frame::selectionHasStyle): (WebCore::Frame::selectionComputedStyle): (WebCore::Frame::selectFrameElementInParentIfFullySelected): (WebCore::Frame::currentForm): (WebCore::Frame::revealSelection): (WebCore::Frame::centerSelectionInVisibleArea): (WebCore::Frame::styleForSelectionStart): (WebCore::Frame::setSelectionFromNone): (WebCore::Frame::findString): * page/Frame.h: * page/FramePrivate.h: (WebCore::FramePrivate::FramePrivate): * page/FrameView.cpp: (WebCore::FrameView::clear): * page/Page.cpp: (WebCore::Page::dragCaretController): * page/Page.h: * rendering/RenderBlock.cpp: (WebCore::RenderBlock::paintCaret): * rendering/RenderLayer.cpp: (WebCore::RenderLayer::autoscroll): * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::selectionStart): (WebCore::RenderTextControl::selectionEnd): (WebCore::RenderTextControl::setSelectionRange): (WebCore::RenderTextControl::selectionChanged): * rendering/RenderTreeAsText.cpp: (WebCore::writeSelection): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@16237 268f45cc-cd09-0410-ab3c-d52691b4dbfc
397edaa4