servo/components/layout
bors-servo e2f2814018
Auto merge of #20128 - Manishearth:rowspan, r=mbrubeck
Rowspan support for tables

fixes #20092

This just contains the first steps.

We apply a naive algorithm: Spanning cells apply a pressure equal to `block_size / rowspan` on each row they are in. We move table row block size computation into the tables, and make it two pass. In the first pass we compute the sizes of each row, and in the
second pass we assign them, adding them up for any involved cells.

This is missing:

 - [x] Accounting for border sizes
 - [x] Applying pressure to rows that are not the row containing the cell
 - [ ] Reducing pressure on future rows if the current row is able to accomodate more of the cell
 - [x] For tables containing both rows and rowgroups, reset the rowspan info when we hit a rowgroup
 - [x] Correctly handle overflowing rowspans

cc @mbrubeck @pcwalton

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20128)
<!-- Reviewable:end -->
2018-02-28 18:40:39 -05:00
..
display_list Rebase and fix innerText 2018-02-24 10:56:11 +01:00
tests Merge layout and layout_tests 2018-01-20 15:33:39 +01:00
animation.rs style: Make the TElement type arrive to the cascade function. 2018-01-23 00:57:54 +01:00
block.rs Allow for build_display_list to be called immutably 2018-02-16 16:01:48 -08:00
Cargo.toml Bump euclid to 0.17 2018-02-28 09:46:59 +01:00
construct.rs style: Move content property out of mako. 2018-02-07 00:11:57 +02:00
context.rs Add test for FontContext/FontGroup functionality 2018-02-22 16:36:09 +01:00
data.rs Bump bitflags to 1.0 in every servo crate 2017-10-30 23:36:06 +01:00
flex.rs Create own file for background calculations in layout 2018-01-06 20:19:32 +01:00
floats.rs Use specific negative assertion for layout floats 2018-01-26 01:55:24 +08:00
flow.rs Use typed transforms in stacking contexts 2018-02-24 10:36:10 +01:00
flow_list.rs Remove usage of unstable feature conservative_impl_trait in layout 2017-10-13 11:11:06 +02:00
flow_ref.rs order derivable traits lists 2017-08-23 21:38:44 +02:00
fragment.rs Replace LengthOrNone by a specific type for the perspective property 2018-02-26 22:32:06 +01:00
generated_content.rs style: Move content property out of mako. 2018-02-07 00:11:57 +02:00
incremental.rs Turn flow::base and friends into methods 2017-12-14 12:16:45 -06:00
inline.rs Add test for FontContext/FontGroup functionality 2018-02-22 16:36:09 +01:00
layout_debug.rs Use specific assertion for layout layout_debug 2018-01-26 01:01:01 +08:00
lib.rs Share line breaking state across text runs 2018-01-24 12:51:33 +05:30
linked_list.rs Move util::linked_list to layout 2016-06-29 17:23:04 +02:00
list_item.rs Allow floats to impact list item marker position 2018-01-24 12:26:32 +01:00
model.rs Fix some "unnecessary parentheses" warnings 2018-01-22 17:41:25 +01:00
multicol.rs Replace PositiveIntegerOrAuto by ColumnCount 2018-02-22 10:16:46 +01:00
opaque_node.rs Introduce LayoutJS<Node>::opaque() to replace OpaqueNodeMethods::from_jsmanaged(). 2016-06-20 19:08:02 +02:00
parallel.rs Turn flow::base and friends into methods 2017-12-14 12:16:45 -06:00
persistent_list.rs Use try syntax for Option where appropriate 2017-10-20 08:25:35 -07:00
query.rs Rebase and fix innerText 2018-02-24 10:56:11 +01:00
sequential.rs Use typed transforms in stacking contexts 2018-02-24 10:36:10 +01:00
table.rs Unconditionally layout rows when laying out tables 2018-02-27 14:47:22 -08:00
table_caption.rs Create own file for background calculations in layout 2018-01-06 20:19:32 +01:00
table_cell.rs Assign table row block sizes in the parent table or rowgroup 2018-02-26 17:08:43 -08:00
table_colgroup.rs Add get_column_styles for getting column structure and styles for a table 2018-02-16 16:01:41 -08:00
table_row.rs Unconditionally layout rows when laying out tables 2018-02-27 14:47:22 -08:00
table_rowgroup.rs Assign table row block sizes in the parent table or rowgroup 2018-02-26 17:08:43 -08:00
table_wrapper.rs Create own file for background calculations in layout 2018-01-06 20:19:32 +01:00
text.rs Add test for FontContext/FontGroup functionality 2018-02-22 16:36:09 +01:00
traversal.rs style: Indent properly a couple more functions. 2018-02-24 23:23:16 +01:00
wrapper.rs style: Move content property out of mako. 2018-02-07 00:11:57 +02:00