diff options
Diffstat (limited to 'src/servo/layout/display_list_builder.rs')
-rw-r--r-- | src/servo/layout/display_list_builder.rs | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/src/servo/layout/display_list_builder.rs b/src/servo/layout/display_list_builder.rs index e106347e3f7..85eed2db274 100644 --- a/src/servo/layout/display_list_builder.rs +++ b/src/servo/layout/display_list_builder.rs @@ -29,17 +29,17 @@ pub struct DisplayListBuilder<'self> { } pub trait FlowDisplayListBuilderMethods { - fn build_display_list(@mut self, a: &DisplayListBuilder, b: &Rect<Au>, c: &Cell<DisplayList>); - fn build_display_list_for_child(@mut self, + fn build_display_list(&self, a: &DisplayListBuilder, b: &Rect<Au>, c: &Cell<DisplayList>); + fn build_display_list_for_child(&self, a: &DisplayListBuilder, - b: @mut FlowContext, + b: FlowContext, c: &Rect<Au>, d: &Point2D<Au>, e: &Cell<DisplayList>); } impl FlowDisplayListBuilderMethods for FlowContext { - fn build_display_list(@mut self, + fn build_display_list(&self, builder: &DisplayListBuilder, dirty: &Rect<Au>, list: &Cell<DisplayList>) { @@ -47,27 +47,28 @@ impl FlowDisplayListBuilderMethods for FlowContext { self.build_display_list_recurse(builder, dirty, &zero, list); } - fn build_display_list_for_child(@mut self, + fn build_display_list_for_child(&self, builder: &DisplayListBuilder, - child_flow: @mut FlowContext, - dirty: &Rect<Au>, offset: &Point2D<Au>, + child_flow: FlowContext, + dirty: &Rect<Au>, + offset: &Point2D<Au>, list: &Cell<DisplayList>) { - // adjust the dirty rect to child flow context coordinates - let d = child_flow.d(); // FIXME: borrow checker workaround - let abs_flow_bounds = d.position.translate(offset); - let adj_offset = offset.add(&d.position.origin); + do child_flow.with_common_info |child_flow_info| { + let abs_flow_bounds = child_flow_info.position.translate(offset); + let adj_offset = offset.add(&child_flow_info.position.origin); - debug!("build_display_list_for_child: rel=%?, abs=%?", - d.position, abs_flow_bounds); - debug!("build_display_list_for_child: dirty=%?, offset=%?", - dirty, offset); + debug!("build_display_list_for_child: rel=%?, abs=%?", + child_flow_info.position, + abs_flow_bounds); + debug!("build_display_list_for_child: dirty=%?, offset=%?", dirty, offset); - if dirty.intersects(&abs_flow_bounds) { - debug!("build_display_list_for_child: intersected. recursing into child flow..."); - child_flow.build_display_list_recurse(builder, dirty, &adj_offset, list); - } else { - debug!("build_display_list_for_child: Did not intersect..."); + if dirty.intersects(&abs_flow_bounds) { + debug!("build_display_list_for_child: intersected. recursing into child flow..."); + child_flow.build_display_list_recurse(builder, dirty, &adj_offset, list); + } else { + debug!("build_display_list_for_child: Did not intersect..."); + } } } } |