| 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()));
|
|
|