1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 04:47:35 +00:00

LibWeb: Make TextNode::ChunkIterator emit an empty chunk for content:""

This ensures that we create a line box for content:"", which would
otherwise get pruned by the empty line cleanup in IFC.

The empty line box is important in this case, since it gives us a
reference point for measuring the automatic height of the IFC's
containing block. By having an empty line, we can now correctly measure
the impact of vertical margins on a generated box with content:""
and allow them to contribute to the block height.
This commit is contained in:
Andreas Kling 2022-10-14 12:38:02 +02:00
parent c70801ddbc
commit b062a0fb7c
3 changed files with 16 additions and 3 deletions

View file

@ -33,7 +33,7 @@ public:
class ChunkIterator {
public:
ChunkIterator(StringView text, bool wrap_lines, bool respect_linebreaks);
ChunkIterator(StringView text, bool wrap_lines, bool respect_linebreaks, bool is_generated_empty_string);
Optional<Chunk> next();
private:
@ -41,6 +41,7 @@ public:
bool const m_wrap_lines;
bool const m_respect_linebreaks;
bool m_should_emit_one_empty_chunk { false };
Utf8View m_utf8_view;
Utf8View::Iterator m_iterator;
};