Fixes for positioning of RTL blocks.

This fixes a bug in finding the top left corner of an RTL block in physical
coordinates.  (The old code used the `start` point of the `position` rect,
which is not always the top left.)

It also fixes the setting of `position.start.i` in certain mixed LTR/RTL
cases.

There is still a bug related to `position.size` for RTL blocks with margins.
See the FIXME comments for details.
This commit is contained in:
Matt Brubeck 2015-03-06 10:48:57 -08:00
parent 7bd6cb0091
commit 531bcb12ae
9 changed files with 80 additions and 7 deletions

View file

@ -102,6 +102,7 @@ impl Flow for TableRowGroupFlow {
// FIXME: In case of border-collapse: collapse, inline-start_content_edge should be
// the border width on the inline-start side.
let inline_start_content_edge = Au::new(0);
let inline_end_content_edge = Au::new(0);
let content_inline_size = containing_block_inline_size;
let inline_size_computer = InternalTable;
@ -115,6 +116,7 @@ impl Flow for TableRowGroupFlow {
};
self.block_flow.propagate_assigned_inline_size_to_children(layout_context,
inline_start_content_edge,
inline_end_content_edge,
content_inline_size,
Some(info));
}