mirror of
https://github.com/servo/servo.git
synced 2025-08-04 21:20:23 +01: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(
|
let pbm_end = Length::from(
|
||||||
inline_box_state.pbm.padding.inline_end + inline_box_state.pbm.border.inline_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);
|
) + 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 {
|
let initial_containing_block = DefiniteContainingBlock {
|
||||||
size: LogicalVec2 {
|
size: LogicalVec2 {
|
||||||
inline: physical_containing_block.size.width,
|
inline: physical_containing_block.size.width.into(),
|
||||||
block: physical_containing_block.size.height,
|
block: physical_containing_block.size.height.into(),
|
||||||
},
|
},
|
||||||
style,
|
style,
|
||||||
};
|
};
|
||||||
|
|
|
@ -25,6 +25,7 @@ mod style_ext;
|
||||||
pub mod table;
|
pub mod table;
|
||||||
pub mod traversal;
|
pub mod traversal;
|
||||||
|
|
||||||
|
use app_units::Au;
|
||||||
pub use flow::BoxTree;
|
pub use flow::BoxTree;
|
||||||
pub use fragment_tree::FragmentTree;
|
pub use fragment_tree::FragmentTree;
|
||||||
use style::properties::ComputedValues;
|
use style::properties::ComputedValues;
|
||||||
|
@ -39,15 +40,15 @@ pub struct ContainingBlock<'a> {
|
||||||
}
|
}
|
||||||
|
|
||||||
struct DefiniteContainingBlock<'a> {
|
struct DefiniteContainingBlock<'a> {
|
||||||
size: LogicalVec2<Length>,
|
size: LogicalVec2<Au>,
|
||||||
style: &'a ComputedValues,
|
style: &'a ComputedValues,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> From<&'_ DefiniteContainingBlock<'a>> for ContainingBlock<'a> {
|
impl<'a> From<&'_ DefiniteContainingBlock<'a>> for ContainingBlock<'a> {
|
||||||
fn from(definite: &DefiniteContainingBlock<'a>) -> Self {
|
fn from(definite: &DefiniteContainingBlock<'a>) -> Self {
|
||||||
ContainingBlock {
|
ContainingBlock {
|
||||||
inline_size: definite.size.inline,
|
inline_size: definite.size.inline.into(),
|
||||||
block_size: LengthOrAuto::LengthPercentage(definite.size.block),
|
block_size: LengthOrAuto::LengthPercentage(definite.size.block.into()),
|
||||||
style: definite.style,
|
style: definite.style,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -253,7 +253,7 @@ impl PositioningContext {
|
||||||
}
|
}
|
||||||
.inflate(&new_fragment.padding);
|
.inflate(&new_fragment.padding);
|
||||||
let containing_block = DefiniteContainingBlock {
|
let containing_block = DefiniteContainingBlock {
|
||||||
size: padding_rect.size.clone(),
|
size: padding_rect.size.clone().into(),
|
||||||
style: &new_fragment.style,
|
style: &new_fragment.style,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -499,7 +499,7 @@ impl HoistedAbsolutelyPositionedBox {
|
||||||
|
|
||||||
let shared_fragment = self.fragment.borrow();
|
let shared_fragment = self.fragment.borrow();
|
||||||
let inline_axis_solver = AbsoluteAxisSolver {
|
let inline_axis_solver = AbsoluteAxisSolver {
|
||||||
containing_size: cbis,
|
containing_size: cbis.into(),
|
||||||
padding_border_sum: pbm.padding_border_sums.inline.into(),
|
padding_border_sum: pbm.padding_border_sums.inline.into(),
|
||||||
computed_margin_start: pbm.margin.inline_start,
|
computed_margin_start: pbm.margin.inline_start,
|
||||||
computed_margin_end: pbm.margin.inline_end,
|
computed_margin_end: pbm.margin.inline_end,
|
||||||
|
@ -508,7 +508,7 @@ impl HoistedAbsolutelyPositionedBox {
|
||||||
};
|
};
|
||||||
|
|
||||||
let block_axis_solver = AbsoluteAxisSolver {
|
let block_axis_solver = AbsoluteAxisSolver {
|
||||||
containing_size: cbbs,
|
containing_size: cbbs.into(),
|
||||||
padding_border_sum: pbm.padding_border_sums.block.into(),
|
padding_border_sum: pbm.padding_border_sums.block.into(),
|
||||||
computed_margin_start: pbm.margin.block_start,
|
computed_margin_start: pbm.margin.block_start,
|
||||||
computed_margin_end: pbm.margin.block_end,
|
computed_margin_end: pbm.margin.block_end,
|
||||||
|
@ -557,11 +557,13 @@ impl HoistedAbsolutelyPositionedBox {
|
||||||
Anchor::End(end) => end,
|
Anchor::End(end) => end,
|
||||||
};
|
};
|
||||||
let margin_sum = inline_axis.margin_start + inline_axis.margin_end;
|
let margin_sum = inline_axis.margin_start + inline_axis.margin_end;
|
||||||
let available_size =
|
let available_size = cbis -
|
||||||
cbis - anchor - pbm.padding_border_sums.inline.into() - margin_sum;
|
anchor.into() -
|
||||||
|
pbm.padding_border_sums.inline -
|
||||||
|
margin_sum.into();
|
||||||
non_replaced
|
non_replaced
|
||||||
.inline_content_sizes(layout_context)
|
.inline_content_sizes(layout_context)
|
||||||
.shrink_to_fit(available_size.into())
|
.shrink_to_fit(available_size)
|
||||||
.into()
|
.into()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -673,15 +675,21 @@ impl HoistedAbsolutelyPositionedBox {
|
||||||
let pb = &pbm.padding + &pbm.border;
|
let pb = &pbm.padding + &pbm.border;
|
||||||
let inline_start = match inline_axis.anchor {
|
let inline_start = match inline_axis.anchor {
|
||||||
Anchor::Start(start) => start + pb.inline_start.into() + margin.inline_start,
|
Anchor::Start(start) => start + pb.inline_start.into() + margin.inline_start,
|
||||||
Anchor::End(end) => {
|
Anchor::End(end) => Length::from(
|
||||||
cbis - end - pb.inline_end.into() - margin.inline_end - content_size.inline
|
cbis - end.into() -
|
||||||
},
|
pb.inline_end -
|
||||||
|
margin.inline_end.into() -
|
||||||
|
content_size.inline.into(),
|
||||||
|
),
|
||||||
};
|
};
|
||||||
let block_start = match block_axis.anchor {
|
let block_start = match block_axis.anchor {
|
||||||
Anchor::Start(start) => start + pb.block_start.into() + margin.block_start,
|
Anchor::Start(start) => start + pb.block_start.into() + margin.block_start,
|
||||||
Anchor::End(end) => {
|
Anchor::End(end) => Length::from(
|
||||||
cbbs - end - pb.block_end.into() - margin.block_end - content_size.block
|
cbbs - end.into() -
|
||||||
},
|
pb.block_end -
|
||||||
|
margin.block_end.into() -
|
||||||
|
content_size.block.into(),
|
||||||
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
let content_rect = LogicalRect {
|
let content_rect = LogicalRect {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue