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