diff options
Diffstat (limited to 'components/layout_2020/flow/inline.rs')
-rw-r--r-- | components/layout_2020/flow/inline.rs | 65 |
1 files changed, 34 insertions, 31 deletions
diff --git a/components/layout_2020/flow/inline.rs b/components/layout_2020/flow/inline.rs index 7c3fd9a29e3..ba9453a5b80 100644 --- a/components/layout_2020/flow/inline.rs +++ b/components/layout_2020/flow/inline.rs @@ -339,11 +339,12 @@ impl Lines { block: line_block_size, }; self.next_line_block_position += size.block; - self.fragments.push(Fragment::Anonymous(AnonymousFragment { - children: line_contents, - rect: Rect { start_corner, size }, - mode: containing_block.style.writing_mode, - })) + self.fragments + .push(Fragment::Anonymous(AnonymousFragment::new( + Rect { start_corner, size }, + line_contents, + containing_block.style.writing_mode, + ))) } } @@ -402,22 +403,24 @@ impl<'box_tree> PartialInlineBoxFragment<'box_tree> { inline_position: &mut Length, at_line_break: bool, ) { - let mut fragment = BoxFragment { - tag: self.tag, - style: self.style.clone(), - children: std::mem::take(&mut nesting_level.fragments_so_far), - content_rect: Rect { - size: Vec2 { - inline: *inline_position - self.start_corner.inline, - block: nesting_level.max_block_size_of_fragments_so_far, - }, - start_corner: self.start_corner.clone(), + let content_rect = Rect { + size: Vec2 { + inline: *inline_position - self.start_corner.inline, + block: nesting_level.max_block_size_of_fragments_so_far, }, - padding: self.padding.clone(), - border: self.border.clone(), - margin: self.margin.clone(), - block_margins_collapsed_with_children: CollapsedBlockMargins::zero(), + start_corner: self.start_corner.clone(), }; + + let mut fragment = BoxFragment::new( + self.tag, + self.style.clone(), + std::mem::take(&mut nesting_level.fragments_so_far), + content_rect, + self.padding.clone(), + self.border.clone(), + self.margin.clone(), + CollapsedBlockMargins::zero(), + ); let last_fragment = self.last_box_tree_fragment && !at_line_break; if last_fragment { *inline_position += fragment.padding.inline_end + @@ -470,16 +473,16 @@ fn layout_atomic<'box_tree>( let size = replaced.used_size_as_if_inline_element(ifc.containing_block, &atomic.style); let fragments = replaced.make_fragments(&atomic.style, size.clone()); let content_rect = Rect { start_corner, size }; - BoxFragment { - tag: atomic.tag, - style: atomic.style.clone(), - children: fragments, + BoxFragment::new( + atomic.tag, + atomic.style.clone(), + fragments, content_rect, padding, border, margin, - block_margins_collapsed_with_children: CollapsedBlockMargins::zero(), - } + CollapsedBlockMargins::zero(), + ) }, Err(non_replaced) => { let box_size = atomic.style.box_size(); @@ -545,16 +548,16 @@ fn layout_atomic<'box_tree>( inline: inline_size, }, }; - BoxFragment { - tag: atomic.tag, - style: atomic.style.clone(), - children: independent_layout.fragments, + BoxFragment::new( + atomic.tag, + atomic.style.clone(), + independent_layout.fragments, content_rect, padding, border, margin, - block_margins_collapsed_with_children: CollapsedBlockMargins::zero(), - } + CollapsedBlockMargins::zero(), + ) }, }; |