Index: Source/core/editing/commands/TypingCommand.cpp |
diff --git a/Source/core/editing/commands/TypingCommand.cpp b/Source/core/editing/commands/TypingCommand.cpp |
index 43e7548afc450f2f8b4bf6bcf6b274291b4d5bef..6b6ba7d510c592e2d6b2f6b3f26cc43f7e92ff71 100644 |
--- a/Source/core/editing/commands/TypingCommand.cpp |
+++ b/Source/core/editing/commands/TypingCommand.cpp |
@@ -540,13 +540,13 @@ void TypingCommand::forwardDeleteKeyPressed(TextGranularity granularity, bool ki |
if (killRing && selection->isCaret() && granularity != CharacterGranularity) |
selection->modify(FrameSelection::AlterationExtend, DirectionForward, CharacterGranularity); |
- Position downstreamEnd = endingSelection().end().downstream(); |
+ Position downstreamEnd = mostForwardCaretPosition(endingSelection().end()); |
VisiblePosition visibleEnd = endingSelection().visibleEnd(); |
Node* enclosingTableCell = enclosingNodeOfType(visibleEnd.deepEquivalent(), &isTableCell); |
if (enclosingTableCell && visibleEnd.deepEquivalent() == VisiblePosition(lastPositionInNode(enclosingTableCell)).deepEquivalent()) |
return; |
if (visibleEnd.deepEquivalent() == endOfParagraph(visibleEnd).deepEquivalent()) |
- downstreamEnd = visibleEnd.next(CannotCrossEditingBoundary).deepEquivalent().downstream(); |
+ downstreamEnd = mostForwardCaretPosition(visibleEnd.next(CannotCrossEditingBoundary).deepEquivalent()); |
// When deleting tables: Select the table first, then perform the deletion |
if (isRenderedTableElement(downstreamEnd.computeContainerNode()) && downstreamEnd.computeOffsetInContainerNode() <= caretMinOffset(downstreamEnd.computeContainerNode())) { |
setEndingSelection(VisibleSelection(endingSelection().end(), positionAfterNode(downstreamEnd.computeContainerNode()), TextAffinity::Downstream, endingSelection().isDirectional())); |