aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/table_rowgroup.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/layout/table_rowgroup.rs')
-rw-r--r--components/layout/table_rowgroup.rs40
1 files changed, 22 insertions, 18 deletions
diff --git a/components/layout/table_rowgroup.rs b/components/layout/table_rowgroup.rs
index 6ea1c4aaa18..a1d1bdc133d 100644
--- a/components/layout/table_rowgroup.rs
+++ b/components/layout/table_rowgroup.rs
@@ -6,12 +6,14 @@
#![deny(unsafe_blocks)]
-use block::{BlockFlow, ISizeAndMarginsComputer, MarginsMayCollapseFlag};
+use block::{BlockFlow, ISizeAndMarginsComputer};
use context::LayoutContext;
use flow::{FlowClass, Flow};
use fragment::{Fragment, FragmentBorderBoxIterator};
use layout_debug;
-use table::{ColumnComputedInlineSize, ColumnIntrinsicInlineSize, InternalTable};
+use style::computed_values::border_spacing;
+use table::{ChildInlineSizeInfo, ColumnComputedInlineSize, ColumnIntrinsicInlineSize};
+use table::{InternalTable, TableLikeFlow};
use wrapper::ThreadSafeLayoutNode;
use geom::{Point2D, Rect};
@@ -32,6 +34,9 @@ pub struct TableRowGroupFlow {
/// Information about the actual inline sizes of each column.
pub column_computed_inline_sizes: Vec<ColumnComputedInlineSize>,
+
+ /// The spacing for this rowgroup.
+ pub spacing: border_spacing::T,
}
impl TableRowGroupFlow {
@@ -41,21 +46,16 @@ impl TableRowGroupFlow {
block_flow: BlockFlow::from_node_and_fragment(node, fragment),
column_intrinsic_inline_sizes: Vec::new(),
column_computed_inline_sizes: Vec::new(),
+ spacing: border_spacing::T {
+ horizontal: Au(0),
+ vertical: Au(0),
+ },
}
}
pub fn fragment<'a>(&'a mut self) -> &'a Fragment {
&self.block_flow.fragment
}
-
- /// Assign block-size for table-rowgroup flow.
- ///
- /// inline(always) because this is only ever called by in-order or non-in-order top-level
- /// methods.
- #[inline(always)]
- fn assign_block_size_table_rowgroup_base<'a>(&mut self, layout_context: &'a LayoutContext<'a>) {
- self.block_flow.assign_block_size_block_base(layout_context, MarginsMayCollapseFlag::MarginsMayNotCollapse)
- }
}
impl Flow for TableRowGroupFlow {
@@ -109,16 +109,20 @@ impl Flow for TableRowGroupFlow {
layout_context,
containing_block_inline_size);
- self.block_flow.propagate_assigned_inline_size_to_children(
- layout_context,
- inline_start_content_edge,
- content_inline_size,
- Some(self.column_computed_inline_sizes.as_slice()));
+ let info = ChildInlineSizeInfo {
+ column_computed_inline_sizes: self.column_computed_inline_sizes.as_slice(),
+ spacing: self.spacing,
+ };
+ self.block_flow.propagate_assigned_inline_size_to_children(layout_context,
+ inline_start_content_edge,
+ content_inline_size,
+ Some(info));
}
- fn assign_block_size<'a>(&mut self, ctx: &'a LayoutContext<'a>) {
+ fn assign_block_size<'a>(&mut self, layout_context: &'a LayoutContext<'a>) {
debug!("assign_block_size: assigning block_size for table_rowgroup");
- self.assign_block_size_table_rowgroup_base(ctx);
+ self.block_flow.assign_block_size_for_table_like_flow(layout_context,
+ self.spacing.vertical)
}
fn compute_absolute_position(&mut self) {