From d34f2a0369c8baab7cf8af956a66d83dd8fefb6e Mon Sep 17 00:00:00 2001 From: Taylor Holliday Date: Fri, 16 Jun 2023 08:20:45 -0700 Subject: [PATCH] #50 process events in reverse draw order --- src/views/list.rs | 2 +- src/views/stack.rs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) 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; }) }