aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/table.rs
diff options
context:
space:
mode:
authorMatt Brubeck <mbrubeck@limpet.net>2017-01-23 09:28:38 -0800
committerMatt Brubeck <mbrubeck@limpet.net>2017-01-24 16:03:12 -0800
commit258162fbee65fb894b8aac5dbce5a366f71dc7b3 (patch)
tree40b0714a9551527c3f812d4382ac750f6c43e9a0 /components/layout/table.rs
parente315e2e167d2ee3810a89b403867dc5849f47701 (diff)
downloadservo-258162fbee65fb894b8aac5dbce5a366f71dc7b3.tar.gz
servo-258162fbee65fb894b8aac5dbce5a366f71dc7b3.zip
Fix block-direction border collapsing calculation
Previously the block-start collapsed borders from rows/cells were written to `preliminary_collapsed_borders` but never read. This fixes the block-direction part of #14834.
Diffstat (limited to 'components/layout/table.rs')
-rw-r--r--components/layout/table.rs19
1 files changed, 12 insertions, 7 deletions
diff --git a/components/layout/table.rs b/components/layout/table.rs
index 9ad018f622e..81cde44bba6 100644
--- a/components/layout/table.rs
+++ b/components/layout/table.rs
@@ -681,13 +681,18 @@ fn perform_border_collapse_for_row(child_table_row: &mut TableRowFlow,
}
// Compute block-start borders.
- match previous_block_borders {
- PreviousBlockCollapsedBorders::FromPreviousRow(previous_block_borders) => {
- child_table_row.final_collapsed_borders.block_start = previous_block_borders
- }
- PreviousBlockCollapsedBorders::FromTable(collapsed_border) => {
- child_table_row.final_collapsed_borders.block_start =
- vec![collapsed_border; child_table_row.block_flow.base.children.len()]
+ let block_start_borders = &mut child_table_row.final_collapsed_borders.block_start;
+ *block_start_borders = child_table_row.preliminary_collapsed_borders.block_start.clone();
+ for (i, this_border) in block_start_borders.iter_mut().enumerate() {
+ match previous_block_borders {
+ PreviousBlockCollapsedBorders::FromPreviousRow(ref previous_block_borders) => {
+ if previous_block_borders.len() > i {
+ this_border.combine(&previous_block_borders[i]);
+ }
+ }
+ PreviousBlockCollapsedBorders::FromTable(table_border) => {
+ this_border.combine(&table_border);
+ }
}
}