layout: make margin in pbm use app unit (#31621)

* make margin in pbm use app unit

* Simplification

* Consistently resolve inline margins as Au, like block margins

---------

Co-authored-by: Oriol Brufau <obrufau@igalia.com>
This commit is contained in:
atbrakhi 2024-03-13 08:45:20 +05:30 committed by GitHub
parent 0b4b544910
commit 0fda14263a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 119 additions and 114 deletions

View file

@ -294,19 +294,19 @@ impl InlineBoxLineItem {
let style = self.style.clone();
let mut padding = self.pbm.padding.clone();
let mut border = self.pbm.border.clone();
let mut margin = self.pbm.margin.auto_is(Length::zero);
let mut margin = self.pbm.margin.auto_is(Au::zero);
if !self.is_first_fragment {
padding.inline_start = Au::zero();
border.inline_start = Au::zero();
margin.inline_start = Length::zero();
margin.inline_start = Au::zero();
}
if !self.is_last_fragment_of_ib_split {
padding.inline_end = Au::zero();
border.inline_end = Au::zero();
margin.inline_end = Length::zero();
margin.inline_end = Au::zero();
}
let pbm_sums = &(&padding + &border) + &margin.map(|t| (*t).into());
let pbm_sums = &(&padding + &border) + &margin;
state.inline_position += pbm_sums.inline_start.into();
let space_above_baseline = self.calculate_space_above_baseline();
@ -342,9 +342,9 @@ impl InlineBoxLineItem {
if !self.is_last_fragment_of_ib_split || !saw_end {
padding.inline_end = Au::zero();
border.inline_end = Au::zero();
margin.inline_end = Length::zero();
margin.inline_end = Au::zero();
}
let pbm_sums = &(&padding + &border) + &margin.clone().into();
let pbm_sums = &(&padding + &border) + &margin.clone();
// If the inline box didn't have any content at all, don't add a Fragment for it.
let box_has_padding_border_or_margin = pbm_sums.inline_sum() > Au::zero();
@ -385,7 +385,7 @@ impl InlineBoxLineItem {
content_rect,
padding.into(),
border.into(),
margin,
margin.into(),
None, /* clearance */
CollapsedBlockMargins::zero(),
);