mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Add tests and clean up *_mode_assign_inline_sizes
Clean up block_mode_assign_inline_sizes and inline_mode_assign_inline_sizes and add extra css tests.
This commit is contained in:
parent
90ab488d42
commit
e0454e0b65
3 changed files with 84 additions and 10 deletions
|
@ -186,14 +186,20 @@ impl FlexFlow {
|
|||
// FIXME (mbrubeck): Get correct mode for absolute containing block
|
||||
let containing_block_mode = self.block_flow.base.writing_mode;
|
||||
|
||||
let container_block_size = match self.available_main_size {
|
||||
AxisSize::Definite(length) => Some(length),
|
||||
_ => None
|
||||
};
|
||||
let container_inline_size = match self.available_cross_size {
|
||||
AxisSize::Definite(length) => length,
|
||||
AxisSize::MinMax(ref constraint) => constraint.clamp(content_inline_size),
|
||||
AxisSize::Infinite => content_inline_size
|
||||
};
|
||||
let mut iterator = self.block_flow.base.child_iter_mut().enumerate().peekable();
|
||||
while let Some((_, kid)) = iterator.next() {
|
||||
{
|
||||
let kid_base = flow::mut_base(kid);
|
||||
kid_base.block_container_explicit_block_size = match self.available_main_size {
|
||||
AxisSize::Definite(length) => Some(length),
|
||||
_ => None
|
||||
}
|
||||
kid_base.block_container_explicit_block_size = container_block_size;
|
||||
}
|
||||
|
||||
// The inline-start margin edge of the child flow is at our inline-start content edge,
|
||||
|
@ -210,11 +216,7 @@ impl FlexFlow {
|
|||
inline_end_content_edge
|
||||
};
|
||||
}
|
||||
kid_base.block_container_inline_size = match self.available_main_size {
|
||||
AxisSize::Definite(length) => length,
|
||||
AxisSize::MinMax(ref constraint) => constraint.clamp(content_inline_size),
|
||||
AxisSize::Infinite => content_inline_size,
|
||||
};
|
||||
kid_base.block_container_inline_size = container_inline_size;
|
||||
kid_base.block_container_writing_mode = containing_block_mode;
|
||||
}
|
||||
}
|
||||
|
@ -247,7 +249,6 @@ impl FlexFlow {
|
|||
|
||||
let even_content_inline_size = inline_size / child_count;
|
||||
|
||||
let inline_size = self.block_flow.base.block_container_inline_size;
|
||||
let container_mode = self.block_flow.base.block_container_writing_mode;
|
||||
self.block_flow.base.position.size.inline = inline_size;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue