Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(229)

Side by Side Diff: Source/core/editing/TypingCommand.cpp

Issue 132903007: Minor refactoring to avoid redundant calls to VisibleSelection::visibleStart() (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 typingAddedToOpenCommand(DeleteKey); 419 typingAddedToOpenCommand(DeleteKey);
420 420
421 m_smartDelete = false; 421 m_smartDelete = false;
422 422
423 FrameSelection selection; 423 FrameSelection selection;
424 selection.setSelection(endingSelection()); 424 selection.setSelection(endingSelection());
425 selection.modify(FrameSelection::AlterationExtend, DirectionBackward, gr anularity); 425 selection.modify(FrameSelection::AlterationExtend, DirectionBackward, gr anularity);
426 if (killRing && selection.isCaret() && granularity != CharacterGranulari ty) 426 if (killRing && selection.isCaret() && granularity != CharacterGranulari ty)
427 selection.modify(FrameSelection::AlterationExtend, DirectionBackward , CharacterGranularity); 427 selection.modify(FrameSelection::AlterationExtend, DirectionBackward , CharacterGranularity);
428 428
429 if (endingSelection().visibleStart().previous(CannotCrossEditingBoundary ).isNull()) { 429 VisiblePosition visibleStart(endingSelection().visibleStart());
430 if (visibleStart.previous(CannotCrossEditingBoundary).isNull()) {
430 // When the caret is at the start of the editable area in an empty l ist item, break out of the list item. 431 // When the caret is at the start of the editable area in an empty l ist item, break out of the list item.
431 if (breakOutOfEmptyListItem()) { 432 if (breakOutOfEmptyListItem()) {
432 typingAddedToOpenCommand(DeleteKey); 433 typingAddedToOpenCommand(DeleteKey);
433 return; 434 return;
434 } 435 }
435 // When there are no visible positions in the editing root, delete i ts entire contents. 436 // When there are no visible positions in the editing root, delete i ts entire contents.
436 if (endingSelection().visibleStart().next(CannotCrossEditingBoundary ).isNull() && makeEditableRootEmpty()) { 437 if (visibleStart.next(CannotCrossEditingBoundary).isNull() && makeEd itableRootEmpty()) {
437 typingAddedToOpenCommand(DeleteKey); 438 typingAddedToOpenCommand(DeleteKey);
438 return; 439 return;
439 } 440 }
440 } 441 }
441 442
442 VisiblePosition visibleStart(endingSelection().visibleStart());
443 // If we have a caret selection at the beginning of a cell, we have noth ing to do. 443 // If we have a caret selection at the beginning of a cell, we have noth ing to do.
444 Node* enclosingTableCell = enclosingNodeOfType(visibleStart.deepEquivale nt(), &isTableCell); 444 Node* enclosingTableCell = enclosingNodeOfType(visibleStart.deepEquivale nt(), &isTableCell);
445 if (enclosingTableCell && visibleStart == firstPositionInNode(enclosingT ableCell)) 445 if (enclosingTableCell && visibleStart == firstPositionInNode(enclosingT ableCell))
446 return; 446 return;
447 447
448 // If the caret is at the start of a paragraph after a table, move conte nt into the last table cell. 448 // If the caret is at the start of a paragraph after a table, move conte nt into the last table cell.
449 if (isStartOfParagraph(visibleStart) && isFirstPositionAfterTable(visibl eStart.previous(CannotCrossEditingBoundary))) { 449 if (isStartOfParagraph(visibleStart) && isFirstPositionAfterTable(visibl eStart.previous(CannotCrossEditingBoundary))) {
450 // Unless the caret is just before a table. We don't want to move a table into the last table cell. 450 // Unless the caret is just before a table. We don't want to move a table into the last table cell.
451 if (isLastPositionBeforeTable(visibleStart)) 451 if (isLastPositionBeforeTable(visibleStart))
452 return; 452 return;
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 ASSERT_NOT_REACHED(); 614 ASSERT_NOT_REACHED();
615 m_preservesTypingStyle = false; 615 m_preservesTypingStyle = false;
616 } 616 }
617 617
618 bool TypingCommand::isTypingCommand() const 618 bool TypingCommand::isTypingCommand() const
619 { 619 {
620 return true; 620 return true;
621 } 621 }
622 622
623 } // namespace WebCore 623 } // namespace WebCore
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698