aboutsummaryrefslogtreecommitdiffstats
path: root/src/servo/layout/display_list_builder.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/servo/layout/display_list_builder.rs')
-rw-r--r--src/servo/layout/display_list_builder.rs41
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...");
+ }
}
}
}