mirror of
https://github.com/RGBCube/serenity
synced 2025-06-01 06:18:12 +00:00
LibWeb: Fix inline blocks swallowing trailing whitespace
In #10434 an issue with leading whitespace in new lines after a <br> element was fixed by checking whether the last fragment of LineBox is empty. However, this introduced a regression by which whitespace following inline elements was swallowed, so `<b>Test</b> 123` would appear like `Test123`. By asking specifically if we are handling a forced linebreak instead of implicity asking for a property that may be shared by other Node types, we can maintain the correct behavior in regards to leading whitespace on new lines, as well as trailing whitespace of inline elements.
This commit is contained in:
parent
7426feacf7
commit
30c39e0e41
5 changed files with 15 additions and 3 deletions
|
@ -217,7 +217,7 @@ void TextNode::split_into_lines_by_rules(InlineFormattingContext& context, Layou
|
|||
|
||||
float chunk_width;
|
||||
if (do_wrap_lines) {
|
||||
if (do_collapse && is_ascii_space(*chunk.view.begin()) && line_boxes.last().is_empty_or_ends_in_whitespace()) {
|
||||
if (do_collapse && is_ascii_space(*chunk.view.begin()) && (line_boxes.last().is_empty_or_ends_in_whitespace() || line_boxes.last().ends_with_forced_line_break())) {
|
||||
// This is a non-empty chunk that starts with collapsible whitespace.
|
||||
// We are at either at the start of a new line, or after something that ended in whitespace,
|
||||
// so we don't need to contribute our own whitespace to the line. Skip over it instead!
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue