| Index: Source/core/editing/EditingUtilities.cpp
|
| diff --git a/Source/core/editing/EditingUtilities.cpp b/Source/core/editing/EditingUtilities.cpp
|
| index 1b233074d2310b456a72dffa03fc8119b4ca68e8..5dd15b02a37f769d05df1f1d7cc8b2da1fb4fd0c 100644
|
| --- a/Source/core/editing/EditingUtilities.cpp
|
| +++ b/Source/core/editing/EditingUtilities.cpp
|
| @@ -360,24 +360,35 @@ PositionInComposedTree nextCandidate(const PositionInComposedTree& position)
|
| // |nextVisuallyDistinctCandidate| is similar to |nextCandidate| except
|
| // for returning position which |downstream()| not equal to initial position's
|
| // |downstream()|.
|
| -Position nextVisuallyDistinctCandidate(const Position& position)
|
| +template <typename Strategy>
|
| +static PositionAlgorithm<Strategy> nextVisuallyDistinctCandidateAlgorithm(const PositionAlgorithm<Strategy>& position)
|
| {
|
| if (position.isNull())
|
| - return Position();
|
| + return PositionAlgorithm<Strategy>();
|
|
|
| - PositionIterator p(position);
|
| - Position downstreamStart = mostForwardCaretPosition(position);
|
| + PositionIteratorAlgorithm<Strategy> p(position);
|
| + const PositionAlgorithm<Strategy> downstreamStart = mostForwardCaretPosition(position);
|
|
|
| p.increment();
|
| while (!p.atEnd()) {
|
| - Position candidate = p.computePosition();
|
| + PositionAlgorithm<Strategy> candidate = p.computePosition();
|
| if (isVisuallyEquivalentCandidate(candidate) && mostForwardCaretPosition(candidate) != downstreamStart)
|
| return candidate;
|
|
|
| p.increment();
|
| }
|
|
|
| - return Position();
|
| + return PositionAlgorithm<Strategy>();
|
| +}
|
| +
|
| +Position nextVisuallyDistinctCandidate(const Position& position)
|
| +{
|
| + return nextVisuallyDistinctCandidateAlgorithm<EditingStrategy>(position);
|
| +}
|
| +
|
| +PositionInComposedTree nextVisuallyDistinctCandidate(const PositionInComposedTree& position)
|
| +{
|
| + return nextVisuallyDistinctCandidateAlgorithm<EditingInComposedTreeStrategy>(position);
|
| }
|
|
|
| template <typename Strategy>
|
|
|