diff --git a/src/views/list.rs b/src/views/list.rs index d8e3e36..bbe57b6 100644 --- a/src/views/list.rs +++ b/src/views/list.rs @@ -27,7 +27,7 @@ where cx: &mut Context, actions: &mut Vec>, ) { - for child in &self.ids { + for child in self.ids.iter().rev() { let child_id = id.child(child); let offset = cx.layout.entry(child_id).or_default().offset; ((self.func)(child)).process(&event.offset(-offset), child_id, cx, actions); diff --git a/src/views/stack.rs b/src/views/stack.rs index 303d93d..809fbf5 100644 --- a/src/views/stack.rs +++ b/src/views/stack.rs @@ -42,12 +42,12 @@ impl View for Stack cx: &mut Context, actions: &mut Vec>, ) { - let mut c = 0; - self.children.foreach_view(&mut |child| { + let mut c = self.children.len() as i32 - 1; + self.children.foreach_view_rev(&mut |child| { let child_id = id.child(&c); let offset = cx.layout.entry(child_id).or_default().offset; (*child).process(&event.offset(-offset), child_id, cx, actions); - c += 1; + c -= 1; }) }