mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
layout: make padding
and border
use Au
in pbm
(#31289)
* use au for padding and border in pbm * review fix
This commit is contained in:
parent
f25fe3539a
commit
8ba251c95f
10 changed files with 168 additions and 128 deletions
|
@ -648,13 +648,14 @@ impl<'a, 'b> InlineFormattingContextState<'a, 'b> {
|
|||
);
|
||||
|
||||
if inline_box.is_first_fragment {
|
||||
self.current_line.inline_position += inline_box_state.pbm.padding.inline_start +
|
||||
inline_box_state.pbm.border.inline_start +
|
||||
inline_box_state
|
||||
.pbm
|
||||
.margin
|
||||
.inline_start
|
||||
.auto_is(Length::zero);
|
||||
self.current_line.inline_position += Length::from(
|
||||
inline_box_state.pbm.padding.inline_start +
|
||||
inline_box_state.pbm.border.inline_start,
|
||||
) + inline_box_state
|
||||
.pbm
|
||||
.margin
|
||||
.inline_start
|
||||
.auto_is(Length::zero)
|
||||
}
|
||||
|
||||
let line_item = inline_box_state
|
||||
|
@ -686,10 +687,10 @@ impl<'a, 'b> InlineFormattingContextState<'a, 'b> {
|
|||
}
|
||||
|
||||
if inline_box_state.is_last_fragment {
|
||||
let pbm_end = inline_box_state.pbm.padding.inline_end +
|
||||
inline_box_state.pbm.border.inline_end +
|
||||
inline_box_state.pbm.margin.inline_end.auto_is(Length::zero);
|
||||
self.current_line_segment.inline_size += pbm_end;
|
||||
let pbm_end = Length::from(
|
||||
inline_box_state.pbm.padding.inline_end + inline_box_state.pbm.border.inline_end,
|
||||
) + inline_box_state.pbm.margin.inline_end.auto_is(Length::zero);
|
||||
self.current_line_segment.inline_size += pbm_end.into();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1819,7 +1820,7 @@ impl IndependentFormattingContext {
|
|||
let style = self.style();
|
||||
let pbm = style.padding_border_margin(ifc.containing_block);
|
||||
let margin = pbm.margin.auto_is(Length::zero);
|
||||
let pbm_sums = &(&pbm.padding + &pbm.border) + &margin;
|
||||
let pbm_sums = &(&pbm.padding + &pbm.border) + &margin.clone().into();
|
||||
let mut child_positioning_context = None;
|
||||
|
||||
// We need to know the inline size of the atomic before deciding whether to do the line break.
|
||||
|
@ -1836,16 +1837,16 @@ impl IndependentFormattingContext {
|
|||
.make_fragments(&replaced.style, size.clone());
|
||||
let content_rect = LogicalRect {
|
||||
start_corner: pbm_sums.start_offset(),
|
||||
size: size.into(),
|
||||
size,
|
||||
};
|
||||
|
||||
BoxFragment::new(
|
||||
replaced.base_fragment_info,
|
||||
replaced.style.clone(),
|
||||
fragments,
|
||||
content_rect,
|
||||
pbm.padding,
|
||||
pbm.border,
|
||||
content_rect.into(),
|
||||
pbm.padding.into(),
|
||||
pbm.border.into(),
|
||||
margin,
|
||||
None, /* clearance */
|
||||
CollapsedBlockMargins::zero(),
|
||||
|
@ -1865,7 +1866,8 @@ impl IndependentFormattingContext {
|
|||
|
||||
// https://drafts.csswg.org/css2/visudet.html#inlineblock-width
|
||||
let tentative_inline_size = box_size.inline.auto_is(|| {
|
||||
let available_size = ifc.containing_block.inline_size - pbm_sums.inline_sum();
|
||||
let available_size =
|
||||
ifc.containing_block.inline_size - pbm_sums.inline_sum().into();
|
||||
non_replaced
|
||||
.inline_content_sizes(layout_context)
|
||||
.shrink_to_fit(available_size.into())
|
||||
|
@ -1915,8 +1917,8 @@ impl IndependentFormattingContext {
|
|||
let content_rect = LogicalRect {
|
||||
start_corner: pbm_sums.start_offset(),
|
||||
size: LogicalVec2 {
|
||||
block: block_size,
|
||||
inline: inline_size,
|
||||
block: block_size.into(),
|
||||
inline: inline_size.into(),
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -1924,9 +1926,9 @@ impl IndependentFormattingContext {
|
|||
non_replaced.base_fragment_info,
|
||||
non_replaced.style.clone(),
|
||||
independent_layout.fragments,
|
||||
content_rect,
|
||||
pbm.padding,
|
||||
pbm.border,
|
||||
content_rect.into(),
|
||||
pbm.padding.into(),
|
||||
pbm.border.into(),
|
||||
margin,
|
||||
None,
|
||||
CollapsedBlockMargins::zero(),
|
||||
|
@ -1943,11 +1945,11 @@ impl IndependentFormattingContext {
|
|||
ifc.process_soft_wrap_opportunity();
|
||||
}
|
||||
|
||||
let size = &pbm_sums.sum() + &fragment.content_rect.size;
|
||||
let size = &pbm_sums.sum().into() + &fragment.content_rect.size;
|
||||
let baseline_offset = fragment
|
||||
.baselines
|
||||
.last
|
||||
.map(|baseline| Au::from(pbm_sums.block_start) + baseline)
|
||||
.map(|baseline| pbm_sums.block_start + baseline)
|
||||
.unwrap_or(size.block.into());
|
||||
|
||||
let (block_sizes, baseline_offset_in_parent) =
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue