|
@@ -85,9 +85,10 @@ void TextNode::compute_text_for_rendering(bool collapse)
|
|
|
m_text_for_rendering = builder.to_string();
|
|
|
}
|
|
|
|
|
|
-TextNode::ChunkIterator::ChunkIterator(StringView text, bool wrap_lines, bool respect_linebreaks)
|
|
|
+TextNode::ChunkIterator::ChunkIterator(StringView text, bool wrap_lines, bool respect_linebreaks, bool is_generated_empty_string)
|
|
|
: m_wrap_lines(wrap_lines)
|
|
|
, m_respect_linebreaks(respect_linebreaks)
|
|
|
+ , m_should_emit_one_empty_chunk(is_generated_empty_string)
|
|
|
, m_utf8_view(text)
|
|
|
, m_iterator(m_utf8_view.begin())
|
|
|
{
|
|
@@ -95,6 +96,17 @@ TextNode::ChunkIterator::ChunkIterator(StringView text, bool wrap_lines, bool re
|
|
|
|
|
|
Optional<TextNode::Chunk> TextNode::ChunkIterator::next()
|
|
|
{
|
|
|
+ if (m_should_emit_one_empty_chunk) {
|
|
|
+ m_should_emit_one_empty_chunk = false;
|
|
|
+ return Chunk {
|
|
|
+ .view = {},
|
|
|
+ .start = 0,
|
|
|
+ .length = 0,
|
|
|
+ .has_breaking_newline = false,
|
|
|
+ .is_all_whitespace = false,
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
if (m_iterator == m_utf8_view.end())
|
|
|
return {};
|
|
|
|