Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Move collapse through margin to the top of block flow
  • Loading branch information
shinglyu committed Sep 6, 2016
1 parent 17df3c2 commit 345923b
Show file tree
Hide file tree
Showing 109 changed files with 21 additions and 324 deletions.
21 changes: 21 additions & 0 deletions components/layout/block.rs
Expand Up @@ -895,6 +895,12 @@ impl BlockFlow {
!had_children_with_clearance);
translate_including_floats(&mut cur_b, delta, &mut floats);

// Collapse-through margins should be placed at the top edge,
// so we'll handle the delta after the bottom margin is processed
if let CollapsibleMargins::CollapseThrough(_) = flow::base(kid).collapsible_margins {
cur_b = cur_b - delta;
}

// Clear past the floats that came in, if necessary.
let clearance = match (flow::base(kid).flags.contains(CLEARS_LEFT),
flow::base(kid).flags.contains(CLEARS_RIGHT)) {
Expand Down Expand Up @@ -926,6 +932,17 @@ impl BlockFlow {
margin_collapse_info.advance_block_end_margin(&kid_base.collapsible_margins);
translate_including_floats(&mut cur_b, delta, &mut floats);

// Collapse-through margin should be placed at the top edge of the flow.
let collapse_delta = match kid_base.collapsible_margins {
CollapsibleMargins::CollapseThrough(_) => {
let delta = margin_collapse_info.current_float_ceiling();
cur_b = cur_b + delta;
kid_base.position.start.b = kid_base.position.start.b + delta;
delta
}
_ => Au(0)
};

if break_at.is_some() {
break
}
Expand All @@ -938,6 +955,10 @@ impl BlockFlow {
}
ctx.this_fragment_is_empty = false
}

// For consecutive collapse-through flows, their top margin should be calculated
// from the same baseline.
cur_b = cur_b - collapse_delta;
}

// Add in our block-end margin and compute our collapsible margins.
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

3 changes: 0 additions & 3 deletions tests/wpt/metadata-css/css21_dev/html4/abspos-011.htm.ini

This file was deleted.

3 changes: 0 additions & 3 deletions tests/wpt/metadata-css/css21_dev/html4/abspos-012.htm.ini

This file was deleted.

3 changes: 0 additions & 3 deletions tests/wpt/metadata-css/css21_dev/html4/abspos-017.htm.ini

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

3 changes: 0 additions & 3 deletions tests/wpt/metadata-css/css21_dev/html4/margin-003.htm.ini

This file was deleted.

3 changes: 0 additions & 3 deletions tests/wpt/metadata-css/css21_dev/html4/margin-004.htm.ini

This file was deleted.

3 changes: 0 additions & 3 deletions tests/wpt/metadata-css/css21_dev/html4/margin-005.htm.ini

This file was deleted.

3 changes: 0 additions & 3 deletions tests/wpt/metadata-css/css21_dev/html4/margin-008.htm.ini

This file was deleted.

3 changes: 0 additions & 3 deletions tests/wpt/metadata-css/css21_dev/html4/margin-009.htm.ini

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

3 changes: 0 additions & 3 deletions tests/wpt/metadata-css/css21_dev/html4/padding-003.htm.ini

This file was deleted.

3 changes: 0 additions & 3 deletions tests/wpt/metadata-css/css21_dev/html4/padding-004.htm.ini

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

0 comments on commit 345923b

Please sign in to comment.