From d7c2d608998b0728a8275d6899d39e31d539ab72 Mon Sep 17 00:00:00 2001 From: Toad06 Date: Tue, 24 Jan 2023 21:15:01 +0100 Subject: [PATCH] core: Propagate events to children in the reverse order ...when this is not an event type used by Buttons. Fixes #8357. --- core/src/display_object/interactive.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/src/display_object/interactive.rs b/core/src/display_object/interactive.rs index 40df083bc..95b5606ec 100644 --- a/core/src/display_object/interactive.rs +++ b/core/src/display_object/interactive.rs @@ -180,7 +180,12 @@ pub trait TInteractiveObject<'gc>: ) -> ClipEventResult { if event.propagates() { if let Some(container) = self.as_displayobject().as_container() { - for child in container.iter_render_list() { + let children = if event.is_button_event() { + container.iter_render_list().collect::>() + } else { + container.iter_render_list().rev().collect::>() + }; + for child in children { if let Some(interactive) = child.as_interactive() { if interactive.handle_clip_event(context, event) == ClipEventResult::Handled {