diff --git a/components/gfx/display_list/mod.rs b/components/gfx/display_list/mod.rs index 26c6bb2c4e4..a904ee41bc2 100644 --- a/components/gfx/display_list/mod.rs +++ b/components/gfx/display_list/mod.rs @@ -55,11 +55,10 @@ impl DisplayList { scroll_offsets: &ScrollOffsetMap) -> Option { let mut result = Vec::new(); - let mut translated_point = client_point.clone(); let mut traversal = DisplayListTraversal::new(self); self.text_index_contents(node, &mut traversal, - &mut translated_point, + client_point, client_point, scroll_offsets, &mut result); @@ -69,30 +68,32 @@ impl DisplayList { pub fn text_index_contents<'a>(&self, node: OpaqueNode, traversal: &mut DisplayListTraversal<'a>, - translated_point: &mut Point2D, + translated_point: &Point2D, client_point: &Point2D, scroll_offsets: &ScrollOffsetMap, result: &mut Vec) { while let Some(item) = traversal.next() { match item { &DisplayItem::PushStackingContext(ref stacking_context_item) => { + let mut point = *translated_point; DisplayList::translate_point(&stacking_context_item.stacking_context, - translated_point, + &mut point, client_point); self.text_index_contents(node, traversal, - translated_point, + &point, client_point, scroll_offsets, result); } &DisplayItem::PushScrollRoot(ref item) => { + let mut point = *translated_point; DisplayList::scroll_root(&item.scroll_root, - translated_point, + &mut point, scroll_offsets); self.text_index_contents(node, traversal, - translated_point, + &point, client_point, scroll_offsets, result);