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

Unified Diff: Source/core/editing/commands/ApplyStyleCommand.cpp

Issue 1302353002: Get rid of redundant member function PositionAlgorithm<Strategy>::{upstream,downstream} (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: 2015-08-22T04:51:20 Rebase Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/editing/commands/ApplyStyleCommand.cpp
diff --git a/Source/core/editing/commands/ApplyStyleCommand.cpp b/Source/core/editing/commands/ApplyStyleCommand.cpp
index 34899befa52be2acfeaae027a3723e74c44c62a4..10a495ccbd41298fd0b42a2a51fe2c43561a8325 100644
--- a/Source/core/editing/commands/ApplyStyleCommand.cpp
+++ b/Source/core/editing/commands/ApplyStyleCommand.cpp
@@ -128,8 +128,8 @@ ApplyStyleCommand::ApplyStyleCommand(Document& document, const EditingStyle* sty
, m_style(style->copy())
, m_editingAction(editingAction)
, m_propertyLevel(propertyLevel)
- , m_start(endingSelection().start().downstream())
- , m_end(endingSelection().end().upstream())
+ , m_start(mostForwardCaretPosition(endingSelection().start()))
+ , m_end(mostBackwardCaretPosition(endingSelection().end()))
, m_useEndingSelection(true)
, m_styledInlineElement(nullptr)
, m_removeOnly(false)
@@ -156,8 +156,8 @@ ApplyStyleCommand::ApplyStyleCommand(PassRefPtrWillBeRawPtr<Element> element, bo
, m_style(EditingStyle::create())
, m_editingAction(editingAction)
, m_propertyLevel(PropertyDefault)
- , m_start(endingSelection().start().downstream())
- , m_end(endingSelection().end().upstream())
+ , m_start(mostForwardCaretPosition(endingSelection().start()))
+ , m_end(mostBackwardCaretPosition(endingSelection().end()))
, m_useEndingSelection(true)
, m_styledInlineElement(element)
, m_removeOnly(removeOnly)
@@ -170,8 +170,8 @@ ApplyStyleCommand::ApplyStyleCommand(Document& document, const EditingStyle* sty
, m_style(style->copy())
, m_editingAction(editingAction)
, m_propertyLevel(PropertyDefault)
- , m_start(endingSelection().start().downstream())
- , m_end(endingSelection().end().upstream())
+ , m_start(mostForwardCaretPosition(endingSelection().start()))
+ , m_end(mostBackwardCaretPosition(endingSelection().end()))
, m_useEndingSelection(true)
, m_styledInlineElement(nullptr)
, m_removeOnly(true)
@@ -366,7 +366,7 @@ void ApplyStyleCommand::applyRelativeFontStyleChange(EditingStyle* style)
else
beyondEnd = NodeTraversal::next(*end.anchorNode());
- start = start.upstream(); // Move upstream to ensure we do not add redundant spans.
+ start = mostBackwardCaretPosition(start); // Move upstream to ensure we do not add redundant spans.
Node* startNode = start.anchorNode();
ASSERT(startNode);
@@ -613,7 +613,7 @@ void ApplyStyleCommand::applyInlineStyle(EditingStyle* style)
// This will ensure we remove all traces of the relevant styles from the selection
// and prevent us from adding redundant ones, as described in:
// <rdar://problem/3724344> Bolding and unbolding creates extraneous tags
- Position removeStart = start.upstream();
+ Position removeStart = mostBackwardCaretPosition(start);
WritingDirection textDirection = NaturalWritingDirection;
bool hasTextDirection = style->textDirection(textDirection);
RefPtrWillBeRawPtr<EditingStyle> styleWithoutEmbedding = nullptr;
@@ -632,7 +632,7 @@ void ApplyStyleCommand::applyInlineStyle(EditingStyle* style)
Position embeddingRemoveEnd = end;
if (endUnsplitAncestor && elementFullySelected(*endUnsplitAncestor, removeStart, end))
- embeddingRemoveEnd = positionInParentBeforeNode(*endUnsplitAncestor).downstream();
+ embeddingRemoveEnd = mostForwardCaretPosition(positionInParentBeforeNode(*endUnsplitAncestor));
if (embeddingRemoveEnd != removeStart || embeddingRemoveEnd != end) {
styleWithoutEmbedding = style->copy();
@@ -1121,7 +1121,7 @@ void ApplyStyleCommand::removeInlineStyle(EditingStyle* style, const Position &s
ASSERT(comparePositions(start, end) <= 0);
// FIXME: We should assert that start/end are not in the middle of a text node.
- Position pushDownStart = start.downstream();
+ Position pushDownStart = mostForwardCaretPosition(start);
// If the pushDownStart is at the end of a text node, then this node is not fully selected.
// Move it to the next deep quivalent position to avoid removing the style from this node.
// e.g. if pushDownStart was at Position("hello", 5) in <b>hello<div>world</div></b>, we want Position("world", 0) instead.
@@ -1129,7 +1129,7 @@ void ApplyStyleCommand::removeInlineStyle(EditingStyle* style, const Position &s
if (pushDownStartContainer && pushDownStartContainer->isTextNode()
&& pushDownStart.computeOffsetInContainerNode() == pushDownStartContainer->maxCharacterOffset())
pushDownStart = nextVisuallyDistinctCandidate(pushDownStart);
- Position pushDownEnd = end.upstream();
+ Position pushDownEnd = mostBackwardCaretPosition(end);
// If pushDownEnd is at the start of a text node, then this node is not fully selected.
// Move it to the previous deep equivalent position to avoid removing the style from this node.
Node* pushDownEndContainer = pushDownEnd.computeContainerNode();
@@ -1208,7 +1208,7 @@ bool ApplyStyleCommand::elementFullySelected(HTMLElement& element, const Positio
element.document().updateLayoutIgnorePendingStylesheets();
return comparePositions(firstPositionInOrBeforeNode(&element), start) >= 0
- && comparePositions(lastPositionInOrAfterNode(&element).upstream(), end) <= 0;
+ && comparePositions(mostBackwardCaretPosition(lastPositionInOrAfterNode(&element)), end) <= 0;
}
void ApplyStyleCommand::splitTextAtStart(const Position& start, const Position& end)
« no previous file with comments | « Source/core/editing/commands/ApplyBlockElementCommand.cpp ('k') | Source/core/editing/commands/BreakBlockquoteCommand.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698