@@ -67,7 +67,7 @@ pub fn ui_picking(
67
67
primary_window : Query < Entity , With < PrimaryWindow > > ,
68
68
ui_scale : Res < UiScale > ,
69
69
ui_stack : Res < UiStack > ,
70
- mut node_query : Query < NodeQuery > ,
70
+ node_query : Query < NodeQuery > ,
71
71
mut output : EventWriter < PointerHits > ,
72
72
) {
73
73
// For each camera, the pointer and its position
@@ -119,7 +119,7 @@ pub fn ui_picking(
119
119
// reverse the iterator to traverse the tree from closest nodes to furthest
120
120
. rev ( )
121
121
{
122
- let Ok ( node) = node_query. get_mut ( * node_entity) else {
122
+ let Ok ( node) = node_query. get ( * node_entity) else {
123
123
continue ;
124
124
} ;
125
125
@@ -183,11 +183,10 @@ pub fn ui_picking(
183
183
for ( ( camera, pointer) , hovered_nodes) in hit_nodes. iter ( ) {
184
184
// As soon as a node with a `Block` focus policy is detected, the iteration will stop on it
185
185
// because it "captures" the interaction.
186
- let mut iter = node_query. iter_many_mut ( hovered_nodes. iter ( ) ) ;
187
186
let mut picks = Vec :: new ( ) ;
188
187
let mut depth = 0.0 ;
189
188
190
- while let Some ( node) = iter . fetch_next ( ) {
189
+ for node in node_query . iter_many ( hovered_nodes ) {
191
190
let Some ( camera_entity) = node
192
191
. target_camera
193
192
. map ( TargetCamera :: entity)
0 commit comments