Chromium Code Reviews| Index: Source/core/editing/VisiblePosition.cpp |
| diff --git a/Source/core/editing/VisiblePosition.cpp b/Source/core/editing/VisiblePosition.cpp |
| index b04bd5ce0bb0a48e70dc9d311ecca844bdd8fbb3..4555f36082b03323a35141825086c16bd7597348 100644 |
| --- a/Source/core/editing/VisiblePosition.cpp |
| +++ b/Source/core/editing/VisiblePosition.cpp |
| @@ -54,8 +54,8 @@ VisiblePosition::VisiblePosition(const Position &pos, EAffinity affinity) |
| } |
| VisiblePosition::VisiblePosition(const PositionInComposedTree& pos, EAffinity affinity) |
| - : VisiblePosition(toPositionInDOMTree(pos), affinity) |
| { |
| + init(pos, affinity); |
| } |
| VisiblePosition::VisiblePosition(const PositionWithAffinity& positionWithAffinity) |
| @@ -647,12 +647,18 @@ PositionInComposedTree canonicalPositionOf(const PositionInComposedTree& positio |
| return canonicalPosition(position); |
| } |
| +static Position toPositionInDOMTree(const Position& position) |
|
tkent
2015/06/25 05:52:26
How about moving this to Position.h?
|
| +{ |
| + return position; |
| +} |
| + |
| template<typename PositionType> |
| void VisiblePosition::init(const PositionType& position, EAffinity affinity) |
| { |
| m_affinity = affinity; |
| - m_deepPosition = canonicalPosition(position); |
| + PositionType deepPosition = canonicalPosition(position); |
| + m_deepPosition = toPositionInDOMTree(deepPosition); |
| if (m_affinity != UPSTREAM) |
| return; |
| @@ -663,7 +669,8 @@ void VisiblePosition::init(const PositionType& position, EAffinity affinity) |
| } |
| // When not at a line wrap, make sure to end up with DOWNSTREAM affinity. |
| - if (!inSameLine(PositionWithAffinity(m_deepPosition, DOWNSTREAM), PositionWithAffinity(m_deepPosition, UPSTREAM))) |
| + using PositionWithAffinityType = PositionWithAffinityTemplate<PositionType>; |
| + if (!inSameLine(PositionWithAffinityType(deepPosition, DOWNSTREAM), PositionWithAffinityType(deepPosition, UPSTREAM))) |
| return; |
| m_affinity = DOWNSTREAM; |
| } |