mirror of
https://github.com/RGBCube/serenity
synced 2025-07-24 12:57:35 +00:00
Revert "LibWeb: Make TextNode::ChunkIterator emit an empty chunk for content:"""
This reverts commit b062a0fb7c
.
This made a calculation of pseudo-elements' height incorrect when they
had `height` set to `auto` and used other techniques (like setting
`padding-top`) to set height, as it was now also adding an empty line.
Additionally, the case didn't work for content containing whitespace
characters, so a pseudo-element with `content: " "` didn't have *this*
particular problem.
This commit is contained in:
parent
cf2c2cb4d7
commit
d4b5205482
3 changed files with 3 additions and 16 deletions
|
@ -266,7 +266,7 @@ void InlineLevelIterator::enter_text_node(Layout::TextNode const& text_node)
|
||||||
.do_respect_linebreaks = do_respect_linebreaks,
|
.do_respect_linebreaks = do_respect_linebreaks,
|
||||||
.is_first_chunk = true,
|
.is_first_chunk = true,
|
||||||
.is_last_chunk = false,
|
.is_last_chunk = false,
|
||||||
.chunk_iterator = TextNode::ChunkIterator { text_node.text_for_rendering(), do_wrap_lines, do_respect_linebreaks, text_node.is_generated() && text_node.text_for_rendering().is_empty() },
|
.chunk_iterator = TextNode::ChunkIterator { text_node.text_for_rendering(), do_wrap_lines, do_respect_linebreaks },
|
||||||
};
|
};
|
||||||
m_text_node_context->next_chunk = m_text_node_context->chunk_iterator.next();
|
m_text_node_context->next_chunk = m_text_node_context->chunk_iterator.next();
|
||||||
}
|
}
|
||||||
|
|
|
@ -124,10 +124,9 @@ void TextNode::compute_text_for_rendering()
|
||||||
m_text_for_rendering = builder.to_deprecated_string();
|
m_text_for_rendering = builder.to_deprecated_string();
|
||||||
}
|
}
|
||||||
|
|
||||||
TextNode::ChunkIterator::ChunkIterator(StringView text, bool wrap_lines, bool respect_linebreaks, bool is_generated_empty_string)
|
TextNode::ChunkIterator::ChunkIterator(StringView text, bool wrap_lines, bool respect_linebreaks)
|
||||||
: m_wrap_lines(wrap_lines)
|
: m_wrap_lines(wrap_lines)
|
||||||
, m_respect_linebreaks(respect_linebreaks)
|
, m_respect_linebreaks(respect_linebreaks)
|
||||||
, m_should_emit_one_empty_chunk(is_generated_empty_string)
|
|
||||||
, m_utf8_view(text)
|
, m_utf8_view(text)
|
||||||
, m_iterator(m_utf8_view.begin())
|
, m_iterator(m_utf8_view.begin())
|
||||||
{
|
{
|
||||||
|
@ -135,17 +134,6 @@ TextNode::ChunkIterator::ChunkIterator(StringView text, bool wrap_lines, bool re
|
||||||
|
|
||||||
Optional<TextNode::Chunk> TextNode::ChunkIterator::next()
|
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())
|
if (m_iterator == m_utf8_view.end())
|
||||||
return {};
|
return {};
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ public:
|
||||||
|
|
||||||
class ChunkIterator {
|
class ChunkIterator {
|
||||||
public:
|
public:
|
||||||
ChunkIterator(StringView text, bool wrap_lines, bool respect_linebreaks, bool is_generated_empty_string);
|
ChunkIterator(StringView text, bool wrap_lines, bool respect_linebreaks);
|
||||||
Optional<Chunk> next();
|
Optional<Chunk> next();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -43,7 +43,6 @@ public:
|
||||||
|
|
||||||
bool const m_wrap_lines;
|
bool const m_wrap_lines;
|
||||||
bool const m_respect_linebreaks;
|
bool const m_respect_linebreaks;
|
||||||
bool m_should_emit_one_empty_chunk { false };
|
|
||||||
Utf8View m_utf8_view;
|
Utf8View m_utf8_view;
|
||||||
Utf8View::Iterator m_iterator;
|
Utf8View::Iterator m_iterator;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue