From 9b4b414abeb4f20f1f9b51c8b510ee3d2af01008 Mon Sep 17 00:00:00 2001 From: patrick kim Date: Tue, 26 Nov 2013 11:44:16 +0900 Subject: [PATCH] fix ContentBoxQuery --- src/components/main/layout/layout_task.rs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/components/main/layout/layout_task.rs b/src/components/main/layout/layout_task.rs index 5b452e54afd..59f33fb9a3c 100644 --- a/src/components/main/layout/layout_task.rs +++ b/src/components/main/layout/layout_task.rs @@ -514,18 +514,19 @@ impl LayoutTask { match *node.mutate_layout_data().ptr { Some(ref mut layout_data) => { let boxes = &mut layout_data.boxes; - if boxes.display_bound_list.is_none() || boxes.display_bound.is_none() { - boxes.display_bound_list = Some(~[]); - boxes.display_bound = Some(Au::zero_rect()); - } + if boxes.display_bound_list.is_none() { + boxes.display_bound_list = Some(~[]); + } match boxes.display_bound_list { Some(ref mut list) => list.push(item.base().bounds), None => {} } - match boxes.display_bound { - Some(ref mut bounds) => *bounds = bounds.union(&item.base().bounds), - None => {} + + if boxes.display_bound.is_none() { + boxes.display_bound = Some(item.base().bounds); + } else { + boxes.display_bound = Some(boxes.display_bound.unwrap().union(&item.base().bounds)); } } None => fail!("no layout data"), @@ -556,7 +557,7 @@ impl LayoutTask { let layout_data = node.borrow_layout_data(); let boxes = &layout_data.ptr.as_ref().unwrap().boxes; match boxes.display_bound { - Some(_) => boxes.display_bound.clone(), + Some(_) => boxes.display_bound, _ => { let mut acc: Option> = None; for child in node.children() {