mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
make size of DefiniteContainingBlock use app units (#31369)
This commit is contained in:
parent
7f00661d1c
commit
d5c9e569bf
4 changed files with 27 additions and 18 deletions
|
@ -681,7 +681,7 @@ impl<'a, 'b> InlineFormattingContextState<'a, 'b> {
|
|||
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();
|
||||
self.current_line_segment.inline_size += pbm_end;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -274,8 +274,8 @@ impl BoxTree {
|
|||
);
|
||||
let initial_containing_block = DefiniteContainingBlock {
|
||||
size: LogicalVec2 {
|
||||
inline: physical_containing_block.size.width,
|
||||
block: physical_containing_block.size.height,
|
||||
inline: physical_containing_block.size.width.into(),
|
||||
block: physical_containing_block.size.height.into(),
|
||||
},
|
||||
style,
|
||||
};
|
||||
|
|
|
@ -25,6 +25,7 @@ mod style_ext;
|
|||
pub mod table;
|
||||
pub mod traversal;
|
||||
|
||||
use app_units::Au;
|
||||
pub use flow::BoxTree;
|
||||
pub use fragment_tree::FragmentTree;
|
||||
use style::properties::ComputedValues;
|
||||
|
@ -39,15 +40,15 @@ pub struct ContainingBlock<'a> {
|
|||
}
|
||||
|
||||
struct DefiniteContainingBlock<'a> {
|
||||
size: LogicalVec2<Length>,
|
||||
size: LogicalVec2<Au>,
|
||||
style: &'a ComputedValues,
|
||||
}
|
||||
|
||||
impl<'a> From<&'_ DefiniteContainingBlock<'a>> for ContainingBlock<'a> {
|
||||
fn from(definite: &DefiniteContainingBlock<'a>) -> Self {
|
||||
ContainingBlock {
|
||||
inline_size: definite.size.inline,
|
||||
block_size: LengthOrAuto::LengthPercentage(definite.size.block),
|
||||
inline_size: definite.size.inline.into(),
|
||||
block_size: LengthOrAuto::LengthPercentage(definite.size.block.into()),
|
||||
style: definite.style,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -253,7 +253,7 @@ impl PositioningContext {
|
|||
}
|
||||
.inflate(&new_fragment.padding);
|
||||
let containing_block = DefiniteContainingBlock {
|
||||
size: padding_rect.size.clone(),
|
||||
size: padding_rect.size.clone().into(),
|
||||
style: &new_fragment.style,
|
||||
};
|
||||
|
||||
|
@ -499,7 +499,7 @@ impl HoistedAbsolutelyPositionedBox {
|
|||
|
||||
let shared_fragment = self.fragment.borrow();
|
||||
let inline_axis_solver = AbsoluteAxisSolver {
|
||||
containing_size: cbis,
|
||||
containing_size: cbis.into(),
|
||||
padding_border_sum: pbm.padding_border_sums.inline.into(),
|
||||
computed_margin_start: pbm.margin.inline_start,
|
||||
computed_margin_end: pbm.margin.inline_end,
|
||||
|
@ -508,7 +508,7 @@ impl HoistedAbsolutelyPositionedBox {
|
|||
};
|
||||
|
||||
let block_axis_solver = AbsoluteAxisSolver {
|
||||
containing_size: cbbs,
|
||||
containing_size: cbbs.into(),
|
||||
padding_border_sum: pbm.padding_border_sums.block.into(),
|
||||
computed_margin_start: pbm.margin.block_start,
|
||||
computed_margin_end: pbm.margin.block_end,
|
||||
|
@ -557,11 +557,13 @@ impl HoistedAbsolutelyPositionedBox {
|
|||
Anchor::End(end) => end,
|
||||
};
|
||||
let margin_sum = inline_axis.margin_start + inline_axis.margin_end;
|
||||
let available_size =
|
||||
cbis - anchor - pbm.padding_border_sums.inline.into() - margin_sum;
|
||||
let available_size = cbis -
|
||||
anchor.into() -
|
||||
pbm.padding_border_sums.inline -
|
||||
margin_sum.into();
|
||||
non_replaced
|
||||
.inline_content_sizes(layout_context)
|
||||
.shrink_to_fit(available_size.into())
|
||||
.shrink_to_fit(available_size)
|
||||
.into()
|
||||
});
|
||||
|
||||
|
@ -673,15 +675,21 @@ impl HoistedAbsolutelyPositionedBox {
|
|||
let pb = &pbm.padding + &pbm.border;
|
||||
let inline_start = match inline_axis.anchor {
|
||||
Anchor::Start(start) => start + pb.inline_start.into() + margin.inline_start,
|
||||
Anchor::End(end) => {
|
||||
cbis - end - pb.inline_end.into() - margin.inline_end - content_size.inline
|
||||
},
|
||||
Anchor::End(end) => Length::from(
|
||||
cbis - end.into() -
|
||||
pb.inline_end -
|
||||
margin.inline_end.into() -
|
||||
content_size.inline.into(),
|
||||
),
|
||||
};
|
||||
let block_start = match block_axis.anchor {
|
||||
Anchor::Start(start) => start + pb.block_start.into() + margin.block_start,
|
||||
Anchor::End(end) => {
|
||||
cbbs - end - pb.block_end.into() - margin.block_end - content_size.block
|
||||
},
|
||||
Anchor::End(end) => Length::from(
|
||||
cbbs - end.into() -
|
||||
pb.block_end -
|
||||
margin.block_end.into() -
|
||||
content_size.block.into(),
|
||||
),
|
||||
};
|
||||
|
||||
let content_rect = LogicalRect {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue