Changeset 28717
- Timestamp:
- 12/14/07 12:03:16 (12 months ago)
- Location:
- trunk
- Files:
-
- 38 modified
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/editing/deleting/5300379.html (modified) (1 diff)
-
LayoutTests/editing/deleting/delete-to-end-of-paragraph.html (modified) (1 diff)
-
LayoutTests/editing/deleting/smart-delete-003.html (modified) (1 diff)
-
LayoutTests/editing/deleting/smart-delete-004.html (modified) (1 diff)
-
LayoutTests/editing/execCommand/nsresponder-indent.html (modified) (1 diff)
-
LayoutTests/editing/execCommand/nsresponder-outdent.html (modified) (1 diff)
-
LayoutTests/editing/selection/4947387.html (modified) (1 diff)
-
LayoutTests/editing/selection/5195166-1.html (modified) (1 diff)
-
LayoutTests/editing/selection/5195166-2.html (modified) (1 diff)
-
LayoutTests/editing/selection/select-line.html (modified) (1 diff)
-
LayoutTests/editing/selection/selection-actions.html (modified) (1 diff)
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/WebCore.base.exp (modified) (1 diff)
-
WebCore/editing/Editor.h (modified) (1 diff)
-
WebCore/editing/EditorCommand.cpp (modified) (15 diffs)
-
WebCore/page/ContextMenuController.cpp (modified) (1 diff)
-
WebCore/page/mac/EventHandlerMac.mm (modified) (1 diff)
-
WebCore/page/mac/WebCoreFrameBridge.h (modified) (8 diffs)
-
WebCore/page/mac/WebCoreFrameBridge.mm (modified) (7 diffs)
-
WebKit/ChangeLog (modified) (1 diff)
-
WebKit/StringsNotToBeLocalized.txt (modified) (9 diffs)
-
WebKit/gtk/ChangeLog (modified) (1 diff)
-
WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp (modified) (3 diffs)
-
WebKit/gtk/WebView/webkitwebview.cpp (modified) (4 diffs)
-
WebKit/mac/ChangeLog (modified) (1 diff)
-
WebKit/mac/WebCoreSupport/WebFrameBridge.h (modified) (1 diff)
-
WebKit/mac/WebCoreSupport/WebFrameBridge.mm (modified) (2 diffs)
-
WebKit/mac/WebView/WebFrameView.mm (modified) (1 diff)
-
WebKit/mac/WebView/WebHTMLView.mm (modified) (24 diffs)
-
WebKit/mac/WebView/WebHTMLViewInternal.h (modified) (3 diffs)
-
WebKit/qt/Api/qwebpage.cpp (modified) (3 diffs)
-
WebKit/qt/ChangeLog (modified) (1 diff)
-
WebKit/qt/WebCoreSupport/EditorClientQt.cpp (modified) (4 diffs)
-
WebKit/win/ChangeLog (modified) (1 diff)
-
WebKit/win/WebView.cpp (modified) (6 diffs)
-
WebKit/wx/ChangeLog (modified) (1 diff)
-
WebKit/wx/WebKitSupport/EditorClientWx.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r28716 r28717 1 2007-12-14 Darin Adler <darin@apple.com> 2 3 Reviewed by Alexey. 4 5 - http://bugs.webkit.org/show_bug.cgi?id=16420 6 change regression tests to use document.execCommand instead of textInputController.doCommand 7 8 To avoid changing results at this time, I didn't correct the many tests that now have 9 misleading "this test cannot be run manually" text or references to "NSResponder" or 10 uneeded instructions for running the test manually. We can do that on a later pass. 11 12 * editing/deleting/5300379.html: Use execCommand instead of doCommand. 13 * editing/deleting/delete-to-end-of-paragraph.html: Ditto. 14 * editing/deleting/smart-delete-003.html: Ditto. 15 * editing/deleting/smart-delete-004.html: Ditto. 16 * editing/execCommand/nsresponder-indent.html: Ditto. 17 * editing/execCommand/nsresponder-outdent.html: Ditto. 18 * editing/selection/4947387.html: Ditto. 19 * editing/selection/5195166-1.html: Ditto. 20 * editing/selection/5195166-2.html: Ditto. 21 * editing/selection/select-line.html: Ditto. 22 * editing/selection/selection-actions.html: Ditto. 23 1 24 2007-12-14 Justin Garcia <justin.garcia@apple.com> 2 25 -
trunk/LayoutTests/editing/deleting/5300379.html
r25382 r28717 7 7 sel = window.getSelection(); 8 8 sel.setPosition(div, 0); 9 if (window.layoutTestController) { 10 // Test to see if deleteWordBackward: hangs. 11 textInputController.doCommand("deleteWordBackward:"); 12 document.execCommand("InsertText", false, "Success FAIL"); 13 // Delete 'FAIL' with deleteWordBackward: to verify that it's not a no-op. 14 textInputController.doCommand("deleteWordBackward:"); 15 textInputController.doCommand("deleteBackward:"); 16 } else { 17 document.execCommand("InsertText", false, "To run this test manually. Delete all this text and then option-delete. Safari shouldn't hang."); 18 } 9 // Test to see if DeleteWordBackward hangs. 10 document.execCommand("DeleteWordBackward"); 11 document.execCommand("InsertText", false, "Success FAIL"); 12 // Delete 'FAIL' with DeleteWordBackward to verify that it's not a no-op. 13 document.execCommand("DeleteWordBackward"); 14 document.execCommand("DeleteBackward"); 19 15 </script> -
trunk/LayoutTests/editing/deleting/delete-to-end-of-paragraph.html
r25382 r28717 13 13 14 14 function editingTest() { 15 if (window.layoutTestController) { 16 17 try { 18 // test for 4570218 by using double deleteToEndOfParagraph 19 textInputController.doCommand("deleteToEndOfParagraph:"); 20 textInputController.doCommand("deleteToEndOfParagraph:"); 15 try { 16 // test for 4570218 by using double deleteToEndOfParagraph 17 document.execCommand("DeleteToEndOfParagraph"); 18 document.execCommand("DeleteToEndOfParagraph"); 21 19 22 } catch (ex) { 23 document.write("Exception: " + ex.description); 24 } 25 } else { 26 document.write("(cannot run interactively)"); 20 } catch (ex) { 21 document.write("Exception: " + ex.description); 27 22 } 28 23 } -
trunk/LayoutTests/editing/deleting/smart-delete-003.html
r25382 r28717 7 7 8 8 <script> 9 if (window.layoutTestController) { 10 var div = document.getElementById("div"); 11 var sel = window.getSelection(); 12 13 sel.setPosition(div, 0); 14 sel.modify("move", "forward", "word"); 15 sel.modify("move", "forward", "word"); 16 sel.modify("extend", "backward", "word"); 17 textInputController.doCommand("deleteBackward:"); 18 } 9 var div = document.getElementById("div"); 10 var sel = window.getSelection(); 11 12 sel.setPosition(div, 0); 13 sel.modify("move", "forward", "word"); 14 sel.modify("move", "forward", "word"); 15 sel.modify("extend", "backward", "word"); 16 document.execCommand("DeleteBackward"); 19 17 </script> -
trunk/LayoutTests/editing/deleting/smart-delete-004.html
r25382 r28717 7 7 8 8 <script> 9 if (window.layoutTestController) { 10 var div = document.getElementById("div"); 11 var sel = window.getSelection(); 12 13 sel.setPosition(div, 0); 14 sel.modify("move", "forward", "word"); 15 sel.modify("move", "forward", "word"); 16 sel.modify("extend", "backward", "word"); 17 textInputController.doCommand("deleteForward:"); 18 } 9 var div = document.getElementById("div"); 10 var sel = window.getSelection(); 11 12 sel.setPosition(div, 0); 13 sel.modify("move", "forward", "word"); 14 sel.modify("move", "forward", "word"); 15 sel.modify("extend", "backward", "word"); 16 document.execCommand("DeleteForward"); 19 17 </script> -
trunk/LayoutTests/editing/execCommand/nsresponder-indent.html
r25382 r28717 12 12 sel.setPosition(div, 0); 13 13 14 textInputController.doCommand("indent:");14 document.execCommand("Indent"); 15 15 </script> -
trunk/LayoutTests/editing/execCommand/nsresponder-outdent.html
r25382 r28717 12 12 sel.setPosition(div, 0); 13 13 14 textInputController.doCommand("outdent:");14 document.execCommand("Outdent"); 15 15 </script> -
trunk/LayoutTests/editing/selection/4947387.html
r25382 r28717 4 4 <script> 5 5 6 if (window.layoutTestController) { 7 6 if (window.layoutTestController) 8 7 window.layoutTestController.dumpEditingCallbacks(); 9 8 10 var div = document.getElementById("div"); 11 var text = div.firstChild; 12 var sel = window.getSelection(); 13 14 sel.setPosition(text, text.length); 15 textInputController.doCommand("moveToBeginningOfLineAndModifySelection:"); 16 17 sel.setPosition(text, 0); 18 textInputController.doCommand("moveToEndOfLineAndModifySelection:"); 9 var div = document.getElementById("div"); 10 var text = div.firstChild; 11 var sel = window.getSelection(); 19 12 20 sel.setPosition(text, text.length); 21 textInputController.doCommand("moveToBeginningOfParagraphAndModifySelection:"); 22 23 sel.setPosition(text, 0); 24 textInputController.doCommand("moveToEndOfParagraphAndModifySelection:"); 25 } 13 sel.setPosition(text, text.length); 14 document.execCommand("MoveToBeginningOfLineAndModifySelection"); 15 16 sel.setPosition(text, 0); 17 document.execCommand("MoveToEndOfLineAndModifySelection"); 18 19 sel.setPosition(text, text.length); 20 document.execCommand("MoveToBeginningOfParagraphAndModifySelection"); 21 22 sel.setPosition(text, 0); 23 document.execCommand("MoveToEndOfParagraphAndModifySelection"); 24 26 25 </script> -
trunk/LayoutTests/editing/selection/5195166-1.html
r25382 r28717 10 10 li.appendChild(text); 11 11 } 12 if (window.layoutTestController) { 13 var text = document.getElementById("div").firstChild; 14 var selection = window.getSelection(); 15 16 // FIXME: m_lastChangeWasHorizontalExtension isn't cleared in several places 17 // where it should be, when opening a new document for example. 18 selection.setPosition(text, 0); 19 selection.modify("move", "forward", "character"); 20 21 selection.setBaseAndExtent(text, 3 + 5, text, 3); 22 // Extending this 5 character selection will select 6 characters. 23 textInputController.doCommand("moveForwardAndModifySelection:"); 24 // Extending it in this way flips the base and the extent. 25 if (selection.extentOffset - selection.baseOffset != 6) 26 log("Failure: Selection isn't the right size."); 27 else 28 log ("Success"); 29 } else 30 log ("Failure: This test cannot be run manually.") 12 var text = document.getElementById("div").firstChild; 13 var selection = window.getSelection(); 14 15 // FIXME: m_lastChangeWasHorizontalExtension isn't cleared in several places 16 // where it should be, when opening a new document for example. 17 selection.setPosition(text, 0); 18 selection.modify("move", "forward", "character"); 19 20 selection.setBaseAndExtent(text, 3 + 5, text, 3); 21 // Extending this 5 character selection will select 6 characters. 22 document.execCommand("MoveForwardAndModifySelection"); 23 // Extending it in this way flips the base and the extent. 24 if (selection.extentOffset - selection.baseOffset != 6) 25 log("Failure: Selection isn't the right size."); 26 else 27 log ("Success"); 31 28 </script> -
trunk/LayoutTests/editing/selection/5195166-2.html
r25382 r28717 10 10 li.appendChild(text); 11 11 } 12 if (window.layoutTestController) {12 if (window.layoutTestController) 13 13 window.layoutTestController.dumpEditingCallbacks(); 14 var text = document.getElementById("div").firstChild; 15 var selection = window.getSelection(); 16 selection.setBaseAndExtent(text, 0, text, 0); 17 textInputController.doCommand("moveForwardAndModifySelection:"); 18 textInputController.doCommand("moveForwardAndModifySelection:"); 19 textInputController.doCommand("moveForwardAndModifySelection:"); 20 textInputController.doCommand("moveBackwardAndModifySelection:"); 21 } else { 22 log("Failure: This test cannot be run manually.") 23 } 24 14 var text = document.getElementById("div").firstChild; 15 var selection = window.getSelection(); 16 selection.setBaseAndExtent(text, 0, text, 0); 17 document.execCommand("MoveForwardAndModifySelection"); 18 document.execCommand("MoveForwardAndModifySelection"); 19 document.execCommand("MoveForwardAndModifySelection"); 20 document.execCommand("MoveBackwardAndModifySelection"); 25 21 </script> -
trunk/LayoutTests/editing/selection/select-line.html
r25382 r28717 10 10 11 11 sel.setPosition(div, 0); 12 if (window.layoutTestController) 13 textInputController.doCommand("selectLine:"); 12 document.execCommand("SelectLine"); 14 13 </script> -
trunk/LayoutTests/editing/selection/selection-actions.html
r25382 r28717 25 25 eventSender.mouseUp(); 26 26 27 textInputController.doCommand("moveBackward:");28 textInputController.doCommand("moveBackwardAndModifySelection:");29 textInputController.doCommand("moveDown:");30 textInputController.doCommand("moveDownAndModifySelection:");31 textInputController.doCommand("moveForward:");32 textInputController.doCommand("moveForwardAndModifySelection:");33 textInputController.doCommand("moveLeft:");34 textInputController.doCommand("moveLeftAndModifySelection:");35 textInputController.doCommand("moveRight:");36 textInputController.doCommand("moveRightAndModifySelection:");37 textInputController.doCommand("moveToBeginningOfDocument:");38 textInputController.doCommand("moveToBeginningOfLine:");39 textInputController.doCommand("moveToBeginningOfParagraph:");40 textInputController.doCommand("moveToEndOfDocument:");41 textInputController.doCommand("moveToEndOfLine:");42 textInputController.doCommand("moveToEndOfParagraph:");43 textInputController.doCommand("moveUp:");44 textInputController.doCommand("moveUpAndModifySelection:");45 textInputController.doCommand("moveWordBackward:");46 textInputController.doCommand("moveWordBackwardAndModifySelection:");47 textInputController.doCommand("moveWordForward:");48 textInputController.doCommand("moveWordForwardAndModifySelection:");49 textInputController.doCommand("moveWordLeft:");50 textInputController.doCommand("moveWordRight:");51 textInputController.doCommand("moveWordRightAndModifySelection:");52 textInputController.doCommand("moveWordLeftAndModifySelection:");53 textInputController.doCommand("pageDown:");54 textInputController.doCommand("pageUp:");55 textInputController.doCommand("selectLine:");56 textInputController.doCommand("selectParagraph:");57 textInputController.doCommand("selectWord:");27 document.execCommand("MoveBackward"); 28 document.execCommand("MoveBackwardAndModifySelection"); 29 document.execCommand("MoveDown"); 30 document.execCommand("MoveDownAndModifySelection"); 31 document.execCommand("MoveForward"); 32 document.execCommand("MoveForwardAndModifySelection"); 33 document.execCommand("MoveLeft"); 34 document.execCommand("MoveLeftAndModifySelection"); 35 document.execCommand("MoveRight"); 36 document.execCommand("MoveRightAndModifySelection"); 37 document.execCommand("MoveToBeginningOfDocument"); 38 document.execCommand("MoveToBeginningOfLine"); 39 document.execCommand("MoveToBeginningOfParagraph"); 40 document.execCommand("MoveToEndOfDocument"); 41 document.execCommand("MoveToEndOfLine"); 42 document.execCommand("MoveToEndOfParagraph"); 43 document.execCommand("MoveUp"); 44 document.execCommand("MoveUpAndModifySelection"); 45 document.execCommand("MoveWordBackward"); 46 document.execCommand("MoveWordBackwardAndModifySelection"); 47 document.execCommand("MoveWordForward"); 48 document.execCommand("MoveWordForwardAndModifySelection"); 49 document.execCommand("MoveWordLeft"); 50 document.execCommand("MoveWordRight"); 51 document.execCommand("MoveWordRightAndModifySelection"); 52 document.execCommand("MoveWordLeftAndModifySelection"); 53 document.execCommand("MovePageDown"); 54 document.execCommand("MovePageUp"); 55 document.execCommand("SelectLine"); 56 document.execCommand("SelectParagraph"); 57 document.execCommand("SelectWord"); 58 58 } 59 59 -
trunk/WebCore/ChangeLog
r28716 r28717 1 2007-12-14 Darin Adler <darin@apple.com> 2 3 Reviewed by Alexey. 4 5 - http://bugs.webkit.org/show_bug.cgi?id=16420 6 change regression tests to use document.execCommand instead of textInputController.doCommand 7 8 Add a few more operations to document.execCommand. 9 10 Finished up the transition to the new Editor::Command, including removing 11 the Editor::execCommand function. 12 13 * WebCore.base.exp: Added Editor::Command::isSupported. 14 * editing/Editor.h: Removed execCommand. 15 * editing/EditorCommand.cpp: 16 (WebCore::expandSelectionToGranularity): Added. 17 (WebCore::verticalScrollDistance): Added; replaces canScroll. 18 (WebCore::executeDeleteBackward): Added. Moved code here from WebHTMLView. 19 (WebCore::executeDeleteBackwardByDecomposingPreviousCharacter): Ditto. 20 (WebCore::executeDeleteForward): Ditto. 21 (WebCore::executeDeleteToBeginningOfLine): Ditto. 22 (WebCore::executeDeleteToBeginningOfParagraph): Ditto. 23 (WebCore::executeDeleteToEndOfLine): Ditto. 24 (WebCore::executeDeleteToEndOfParagraph): Ditto. 25 (WebCore::executeMovePageDown): Renamed this command to be consistent with all the other 26 Move commands. They all modify the caret. Reimplemented to match the Mac OS X version by 27 removing the explicit scrolling, and letting it be done automatically by code that makes 28 the caret visible. In some cases the old code would scroll twice which was harmless but 29 unnecessary. 30 (WebCore::executeMovePageDownAndModifySelection): Added. Moved code here from WebHTMLView. 31 (WebCore::executeMovePageUp): See MovePageDown above. 32 (WebCore::executeMovePageUpAndModifySelection): Added. Moved code here from WebHTMLView. 33 (WebCore::executeSelectLine): Ditto. 34 (WebCore::executeSelectParagraph): Ditto. 35 (WebCore::executeSelectSentence): Ditto. 36 (WebCore::executeSelectWord): Ditto. 37 (WebCore::executeSwapWithMark): Some small tweaks. 38 39 * page/ContextMenuController.cpp: 40 (WebCore::ContextMenuController::contextMenuItemSelected): Changed to use Editor::command() 41 instead of Editor::execCommand(). This code could be changed to use Editor::Command quite a 42 bit more, but I didn't do that this time. 43 44 - Removed some obsolete unused code. 45 46 * page/mac/EventHandlerMac.mm: 47 (WebCore::EventHandler::passMouseDownEventToWidget): Removed the special case code for 48 NSTextView. This was left over from when we used NSTextField and NSTextView for form 49 elements and is no longer used at all. 50 51 * page/mac/WebCoreFrameBridge.h: Removed 20 unused methods that were still on one side 52 of the bridge or another. We really need to find a time to tear down the rest of the 53 bridge, but that's not this patch. 54 55 * page/mac/WebCoreFrameBridge.mm: 56 (-[WebCoreFrameBridge addData:]): Changed to get at the _shouldCreateRenderers field directly 57 instead of using a method. 58 (-[WebCoreFrameBridge rangeByAlteringCurrentSelection:SelectionController::direction:SelectionController::granularity:]): 59 Took out obsolete comment about matching enums (we use a single enum now and have for some 60 time). 61 (-[WebCoreFrameBridge selectionGranularity]): Ditto. 62 1 63 2007-12-14 Justin Garcia <justin.garcia@apple.com> 2 64 -
trunk/WebCore/WebCore.base.exp
r28693 r28717 676 676 __ZNK7WebCore6Editor23getCompositionSelectionERjS1_ 677 677 __ZNK7WebCore6Editor6canCutEv 678 __ZNK7WebCore6Editor7Command11isSupportedEv 678 679 __ZNK7WebCore6Editor7Command15isTextInsertionEv 679 680 __ZNK7WebCore6Editor7Command5stateEPNS_5EventE -
trunk/WebCore/editing/Editor.h
r28626 r28717 187 187 Command command(const String& commandName, EditorCommandSource); 188 188 189 // Deprecated, but used by old key binding code. Keep around until we have eliminated all callers.190 bool execCommand(const AtomicString& commandName, Event* triggeringEvent = 0);191 192 189 bool insertText(const String&, Event* triggeringEvent); 193 190 bool insertTextWithoutSendingTextEvent(const String&, bool selectInsertedText, Event* triggeringEvent = 0); -
trunk/WebCore/editing/EditorCommand.cpp
r28653 r28717 32 32 #include "DocumentFragment.h" 33 33 #include "Editor.h" 34 #include "EditorClient.h" 34 35 #include "Event.h" 35 36 #include "EventHandler.h" … … 175 176 } 176 177 178 static bool expandSelectionToGranularity(Frame* frame, TextGranularity granularity) 179 { 180 Selection selection = frame->selectionController()->selection(); 181 selection.expandUsingGranularity(granularity); 182 RefPtr<Range> newRange = selection.toRange(); 183 if (!newRange) 184 return false; 185 ExceptionCode ec = 0; 186 if (newRange->collapsed(ec)) 187 return false; 188 RefPtr<Range> oldRange = frame->selectionController()->selection().toRange(); 189 EAffinity affinity = frame->selectionController()->affinity(); 190 if (!frame->editor()->client()->shouldChangeSelectedRange(oldRange.get(), newRange.get(), affinity, false)) 191 return false; 192 frame->selectionController()->setSelectedRange(newRange.get(), affinity, true); 193 return true; 194 } 195 177 196 static TriState stateStyle(Frame* frame, int propertyID, const char* desiredValue) 178 197 { … … 187 206 } 188 207 189 static bool canScroll(RenderObject* renderer) 190 { 208 static int verticalScrollDistance(Frame* frame) 209 { 210 Node* focusedNode = frame->document()->focusedNode(); 211 if (!focusedNode) 212 return 0; 213 RenderObject* renderer = focusedNode->renderer(); 191 214 if (!renderer) 192 return false;215 return 0; 193 216 RenderStyle* style = renderer->style(); 194 217 if (!style) 195 return false; 196 return style->overflowY() == OSCROLL || style->overflowY() == OAUTO || renderer->isTextArea(); 218 return 0; 219 if (!(style->overflowY() == OSCROLL || style->overflowY() == OAUTO || renderer->isTextArea())) 220 return 0; 221 int height = renderer->clientHeight(); 222 return max((height + 1) / 2, height - PAGE_KEEP); 197 223 } 198 224 … … 259 285 } 260 286 287 static bool executeDeleteBackward(Frame* frame, Event*, EditorCommandSource, const String&) 288 { 289 frame->editor()->deleteWithDirection(SelectionController::BACKWARD, CharacterGranularity, false, true); 290 return true; 291 } 292 293 static bool executeDeleteBackwardByDecomposingPreviousCharacter(Frame* frame, Event*, EditorCommandSource, const String&) 294 { 295 LOG_ERROR("DeleteBackwardByDecomposingPreviousCharacter is not implemented, doing DeleteBackward instead"); 296 frame->editor()->deleteWithDirection(SelectionController::BACKWARD, CharacterGranularity, false, true); 297 return true; 298 } 299 300 static bool executeDeleteForward(Frame* frame, Event*, EditorCommandSource source, const String&) 301 { 302 frame->editor()->deleteWithDirection(SelectionController::FORWARD, CharacterGranularity, false, true); 303 return true; 304 } 305 306 static bool executeDeleteToBeginningOfLine(Frame* frame, Event*, EditorCommandSource, const String&) 307 { 308 frame->editor()->deleteWithDirection(SelectionController::BACKWARD, LineBoundary, true, false); 309 return true; 310 } 311 312 static bool executeDeleteToBeginningOfParagraph(Frame* frame, Event*, EditorCommandSource, const String&) 313 { 314 frame->editor()->deleteWithDirection(SelectionController::BACKWARD, ParagraphBoundary, true, false); 315 return true; 316 } 317 318 static bool executeDeleteToEndOfLine(Frame* frame, Event*, EditorCommandSource, const String&) 319 { 320 // Despite its name, this command should delete the newline at the end of 321 // a paragraph if you are at the end of a paragraph (like DeleteToEndOfParagraph). 322 frame->editor()->deleteWithDirection(SelectionController::FORWARD, LineBoundary, true, false); 323 return true; 324 } 325 326 static bool executeDeleteToEndOfParagraph(Frame* frame, Event*, EditorCommandSource, const String&) 327 { 328 // Despite its name, this command should delete the newline at the end of 329 // a paragraph if you are at the end of a paragraph. 330 frame->editor()->deleteWithDirection(SelectionController::FORWARD, ParagraphBoundary, true, false); 331 return true; 332 } 333 261 334 static bool executeDeleteToMark(Frame* frame, Event*, EditorCommandSource, const String&) 262 335 { … … 475 548 } 476 549 477 static bool executeMoveDownByPageAndModifyCaret(Frame* frame, Event*, EditorCommandSource, const String&)478 {479 <