mirror of
https://github.com/servo/servo.git
synced 2025-08-05 05:30:08 +01:00
Fixes the table_percentage_width_a.html reftest with incremental reflow turned on.
This commit is contained in:
parent
852378209b
commit
81bd3cbd9d
11 changed files with 48 additions and 70 deletions
|
@ -40,7 +40,13 @@ pub enum TableLayout {
|
|||
pub struct TableWrapperFlow {
|
||||
pub block_flow: BlockFlow,
|
||||
|
||||
/// Inline-size information for each column.
|
||||
/// Intrinsic column inline sizes according to INTRINSIC § 4.1
|
||||
pub intrinsic_column_inline_sizes: Vec<ColumnInlineSize>,
|
||||
|
||||
/// Computed inline-size for each column.
|
||||
///
|
||||
/// FIXME: This should be a separate type that only contains computed inline
|
||||
/// sizes.
|
||||
pub column_inline_sizes: Vec<ColumnInlineSize>,
|
||||
|
||||
/// Table-layout property
|
||||
|
@ -60,6 +66,7 @@ impl TableWrapperFlow {
|
|||
};
|
||||
TableWrapperFlow {
|
||||
block_flow: block_flow,
|
||||
intrinsic_column_inline_sizes: vec!(),
|
||||
column_inline_sizes: vec!(),
|
||||
table_layout: table_layout
|
||||
}
|
||||
|
@ -77,6 +84,7 @@ impl TableWrapperFlow {
|
|||
};
|
||||
TableWrapperFlow {
|
||||
block_flow: block_flow,
|
||||
intrinsic_column_inline_sizes: vec!(),
|
||||
column_inline_sizes: vec!(),
|
||||
table_layout: table_layout
|
||||
}
|
||||
|
@ -95,6 +103,7 @@ impl TableWrapperFlow {
|
|||
};
|
||||
TableWrapperFlow {
|
||||
block_flow: block_flow,
|
||||
intrinsic_column_inline_sizes: vec!(),
|
||||
column_inline_sizes: vec!(),
|
||||
table_layout: table_layout
|
||||
}
|
||||
|
@ -244,7 +253,7 @@ impl Flow for TableWrapperFlow {
|
|||
for kid in self.block_flow.base.child_iter() {
|
||||
debug_assert!(kid.is_table_caption() || kid.is_table());
|
||||
if kid.is_table() {
|
||||
self.column_inline_sizes = kid.column_inline_sizes().clone()
|
||||
self.intrinsic_column_inline_sizes = kid.column_inline_sizes().clone()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -259,6 +268,8 @@ impl Flow for TableWrapperFlow {
|
|||
"table_wrapper"
|
||||
});
|
||||
|
||||
self.column_inline_sizes = self.intrinsic_column_inline_sizes.clone();
|
||||
|
||||
// Table wrappers are essentially block formatting contexts and are therefore never
|
||||
// impacted by floats.
|
||||
self.block_flow.base.flags.set_impacted_by_left_floats(false);
|
||||
|
@ -293,6 +304,7 @@ impl Flow for TableWrapperFlow {
|
|||
self.block_flow.propagate_assigned_inline_size_to_children(inline_start_content_edge,
|
||||
content_inline_size,
|
||||
assigned_column_inline_sizes);
|
||||
|
||||
}
|
||||
|
||||
fn assign_block_size<'a>(&mut self, ctx: &'a LayoutContext<'a>) {
|
||||
|
@ -564,4 +576,3 @@ impl ExcessInlineSizeDistributionInfo {
|
|||
amount_to_distribute
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue