| Index: Source/core/editing/VisibleUnits.cpp
|
| diff --git a/Source/core/editing/VisibleUnits.cpp b/Source/core/editing/VisibleUnits.cpp
|
| index 22572939c1c125ff71c85cfae136235a02912d40..0feccec2f599e5a704cc678dbd444562b1ea1efb 100644
|
| --- a/Source/core/editing/VisibleUnits.cpp
|
| +++ b/Source/core/editing/VisibleUnits.cpp
|
| @@ -2548,12 +2548,13 @@ static VisiblePosition skipToEndOfEditingBoundary(const VisiblePosition& pos, co
|
| return firstEditableVisiblePositionAfterPositionInRoot(pos.deepEquivalent(), highestRoot);
|
| }
|
|
|
| -UChar32 characterAfter(const VisiblePosition& visiblePosition)
|
| +template <typename Strategy>
|
| +static UChar32 characterAfterAlgorithm(const VisiblePositionTemplate<Strategy>& visiblePosition)
|
| {
|
| // We canonicalize to the first of two equivalent candidates, but the second
|
| // of the two candidates is the one that will be inside the text node
|
| // containing the character after this visible position.
|
| - Position pos = mostForwardCaretPosition(visiblePosition.deepEquivalent());
|
| + const PositionAlgorithm<Strategy> pos = mostForwardCaretPosition(visiblePosition.deepEquivalent());
|
| if (!pos.isOffsetInAnchor())
|
| return 0;
|
| Node* containerNode = pos.computeContainerNode();
|
| @@ -2568,6 +2569,16 @@ UChar32 characterAfter(const VisiblePosition& visiblePosition)
|
| return textNode->data().characterStartingAt(offset);
|
| }
|
|
|
| +UChar32 characterAfter(const VisiblePosition& visiblePosition)
|
| +{
|
| + return characterAfterAlgorithm<EditingStrategy>(visiblePosition);
|
| +}
|
| +
|
| +UChar32 characterAfter(const VisiblePositionInComposedTree& visiblePosition)
|
| +{
|
| + return characterAfterAlgorithm<EditingInComposedTreeStrategy>(visiblePosition);
|
| +}
|
| +
|
| UChar32 characterBefore(const VisiblePosition& visiblePosition)
|
| {
|
| return characterAfter(previousPositionOf(visiblePosition));
|
|
|