Index: Source/core/editing/markup.cpp |
diff --git a/Source/core/editing/markup.cpp b/Source/core/editing/markup.cpp |
index 7259f474a27ea20a1308d1c8ea6b98530f5ead31..73d574c047292a561b30b6c7ed17f4ed1ef3d908 100644 |
--- a/Source/core/editing/markup.cpp |
+++ b/Source/core/editing/markup.cpp |
@@ -263,14 +263,20 @@ String StyledMarkupAccumulator::renderedText(Node& node, const Range* range) |
unsigned startOffset = 0; |
unsigned endOffset = textNode.length(); |
- if (range && textNode == range->startContainer()) |
- startOffset = range->startOffset(); |
- if (range && textNode == range->endContainer()) |
- endOffset = range->endOffset(); |
+ TextIteratorBehavior behavior = TextIteratorDefaultBehavior; |
+ if (range) { |
+ if (textNode == range->startContainer()) |
+ startOffset = range->startOffset(); |
+ |
+ if (textNode == range->endContainer()) |
+ endOffset = range->endOffset(); |
+ else |
+ behavior = TextIteratorBehavesAsIfNodesFollowing; |
+ } |
Position start = createLegacyEditingPosition(&textNode, startOffset); |
Position end = createLegacyEditingPosition(&textNode, endOffset); |
- return plainText(Range::create(textNode.document(), start, end).get()); |
+ return plainText(Range::create(textNode.document(), start, end).get(), behavior); |
} |
String StyledMarkupAccumulator::stringValueForRange(const Node& node, const Range* range) |