From 25a39184154b905d831959057381aaca8ed25db2 Mon Sep 17 00:00:00 2001 From: Isabelle Carter Date: Wed, 5 Mar 2014 15:13:10 -0600 Subject: [PATCH] Children of fixed flows make into parent DL fixes #1831 --- src/components/main/layout/block.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/components/main/layout/block.rs b/src/components/main/layout/block.rs index 0f965a80c28..800eb05ea28 100644 --- a/src/components/main/layout/block.rs +++ b/src/components/main/layout/block.rs @@ -1244,10 +1244,9 @@ impl BlockFlow { self.build_display_list_float(builder, container_block_size, dirty, index, lists); return index; } else if self.is_absolutely_positioned() { - self.build_display_list_abs(builder, container_block_size, + return self.build_display_list_abs(builder, container_block_size, absolute_cb_abs_position, dirty, index, lists); - return index; } // FIXME: Shouldn't this be the abs_rect _after_ relative positioning? @@ -1395,7 +1394,7 @@ impl BlockFlow { dirty: &Rect, mut index: uint, lists: &RefCell>) - -> bool { + -> uint { let flow_origin = if self.is_fixed() { // The viewport is initially at (0, 0). self.base.position.origin @@ -1417,7 +1416,7 @@ impl BlockFlow { self.base.abs_position = flow_origin; let abs_rect = Rect(flow_origin, self.base.position.size); if !abs_rect.intersects(dirty) { - return true; + return index; } for box_ in self.box_.iter() { @@ -1430,7 +1429,7 @@ impl BlockFlow { child_base.abs_position = flow_origin + child_base.position.origin; } - false + index } /// Return the top outer edge of the Hypothetical Box for an absolute flow.