From 65c6689bccdbde22030764adb2b563fcb0f847ca Mon Sep 17 00:00:00 2001 From: Martin Robinson Date: Tue, 23 Sep 2014 16:53:50 -0700 Subject: [PATCH] Compound scrolling offsets when setting content offset When traversing the layer tree to assign content offset, the new offset needs to take into account any additional offset from children that are also scrolling roots. This means that when you scroll a parent frame, it doesn't override the scroll position of its children, but adds to it. --- components/compositing/events.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/compositing/events.rs b/components/compositing/events.rs index a6b36fa6df0..aa1bfc6e2a3 100644 --- a/components/compositing/events.rs +++ b/components/compositing/events.rs @@ -143,8 +143,9 @@ fn scroll_layer_and_all_child_layers(layer: Rc>, result = true } + let offset_for_children = new_offset + layer.extra_data.borrow().scroll_offset; for child in layer.children().iter() { - result |= scroll_layer_and_all_child_layers(child.clone(), new_offset); + result |= scroll_layer_and_all_child_layers(child.clone(), offset_for_children); } return result;