Fix direction of columns in mixed LTR/RTL tables.

Table columns should be layed out according to the 'direction' property of the
table flow, regardless of the 'direction' property of any table-row,
table-rowgroup, etc. flows.

This fixes a number of the `direction-applies-to-*` tests in the CSS2.1 test
suite.

This also simplifies `propagate_column_inline_sizes_to_child` by separating
the code used for table cells from the code for non-cell flows.

r? @pcwalton
This commit is contained in:
Matt Brubeck 2015-05-08 14:24:34 -07:00
parent a052c53d2e
commit e36a498cfb
9 changed files with 143 additions and 72 deletions

View file

@ -341,7 +341,7 @@ impl Flow for TableWrapperFlow {
inline_start_content_edge,
inline_end_content_edge,
content_inline_size,
|_, _, _, _, _| {})
|_, _, _, _, _, _| {})
}
Some(ref assigned_column_inline_sizes) => {
self.block_flow
@ -350,19 +350,16 @@ impl Flow for TableWrapperFlow {
inline_end_content_edge,
content_inline_size,
|child_flow,
child_index,
content_inline_size,
_child_index,
_content_inline_size,
writing_mode,
inline_start_margin_edge| {
_inline_start_margin_edge,
_inline_end_margin_edge| {
table_row::propagate_column_inline_sizes_to_child(
child_flow,
child_index,
content_inline_size,
writing_mode,
assigned_column_inline_sizes,
&border_spacing,
&None,
inline_start_margin_edge)
&border_spacing);
})
}
}