layout: Fix ordering of padding, border, and margin in inline BiDi (#34572)

* [fix](inline flow): Create PBM items in inline context in propper visual order

Signed-off-by: Desiatkin Dmitrii <d.desyatkin@innopolis.university>

* Rename left/right pbm terms in inline layout to logical nomenclature

 - LineItem::LeftInlineBoxPaddingBorderMargin(_) is renamed to
   LineItem::InlineStartBoxPaddingBorderMargin(_)
 - LineItem::RightInlineBoxPaddingBorderMargin(_) is renamed to
   LineItem::InlineEndBoxPaddingBorderMargin(_)
 - LineLayoutInlineContainerFlags::HAD_LEFT_PBM is renamed to
   LineLayoutInlineContainerFlags::HAD_INLINE_START_PBM
 - LineLayoutInlineContainerFlags::HAD_RIGHT_PBM is renamed to
   LineLayoutInlineContainerFlags::HAD_INLINE_END_PBM

Signed-off-by: Oriol Brufau <obrufau@igalia.com>

* Update test expectations

Signed-off-by: Oriol Brufau <obrufau@igalia.com>

---------

Signed-off-by: Desiatkin Dmitrii <d.desyatkin@innopolis.university>
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
This commit is contained in:
Dmitrii Desiatkin 2024-12-12 22:39:50 +08:00 committed by GitHub
parent acf0074f8a
commit 5cb75a84a3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 29 additions and 52 deletions

View file

@ -48,8 +48,8 @@
//! a linear series of items that describe the line's hierarchy of inline boxes and content. The
//! item types are:
//!
//! - [`LineItem::LeftInlineBoxPaddingBorderMargin`]
//! - [`LineItem::RightInlineBoxPaddingBorderMargin`]
//! - [`LineItem::InlineStartBoxPaddingBorderMargin`]
//! - [`LineItem::InlineEndBoxPaddingBorderMargin`]
//! - [`LineItem::TextRun`]
//! - [`LineItem::Atomic`]
//! - [`LineItem::AbsolutelyPositioned`]
@ -733,7 +733,7 @@ impl<'layout_dta> InlineFormattingContextLayout<'layout_dta> {
inline_box_state.pbm.margin.inline_start.auto_is(Au::zero);
self.current_line_segment
.line_items
.push(LineItem::LeftInlineBoxPaddingBorderMargin(
.push(LineItem::InlineStartBoxPaddingBorderMargin(
inline_box.identifier,
));
}
@ -778,7 +778,7 @@ impl<'layout_dta> InlineFormattingContextLayout<'layout_dta> {
self.current_line_segment.inline_size += pbm_end;
self.current_line_segment
.line_items
.push(LineItem::RightInlineBoxPaddingBorderMargin(
.push(LineItem::InlineEndBoxPaddingBorderMargin(
inline_box_state.identifier,
))
}