@@ -102,7 +102,8 @@ fn mouse_down_handler(node &Layout, in_handler bool, mut e Event, mut w Window)
102102 return
103103 }
104104 }
105- for child in node.children.reverse () {
105+ for i := node.children.len - 1 ; node.children.len > 0 && i > = 0 ; i-- {
106+ child := unsafe { & node.children[i] }
106107 mouse_down_handler (child, true , mut e, mut w)
107108 if e.is_handled {
108109 return
@@ -141,7 +142,8 @@ fn mouse_move_handler(node &Layout, mut e Event, mut w Window) {
141142 if ! w.pointer_over_app (e) {
142143 return
143144 }
144- for child in node.children.reverse () {
145+ for i := node.children.len - 1 ; node.children.len > 0 && i > = 0 ; i-- {
146+ child := unsafe { & node.children[i] }
145147 mouse_move_handler (child, mut e, mut w)
146148 if e.is_handled {
147149 return
@@ -165,7 +167,8 @@ fn mouse_up_handler(node &Layout, mut e Event, mut w Window) {
165167 w.view_state.mouse_lock.mouse_up (node, mut e, mut w)
166168 return
167169 }
168- for child in node.children.reverse () {
170+ for i := node.children.len - 1 ; node.children.len > 0 && i > = 0 ; i-- {
171+ child := unsafe { & node.children[i] }
169172 mouse_up_handler (child, mut e, mut w)
170173 if e.is_handled {
171174 return
@@ -197,7 +200,8 @@ fn mouse_up_handler(node &Layout, mut e Event, mut w Window) {
197200}
198201
199202fn mouse_scroll_handler (node & Layout, mut e Event, mut w Window) {
200- for child in node.children.reverse () {
203+ for i := node.children.len - 1 ; node.children.len > 0 && i > = 0 ; i-- {
204+ child := unsafe { & node.children[i] }
201205 mouse_scroll_handler (child, mut e, mut w)
202206 if e.is_handled {
203207 return
0 commit comments