@@ -49,7 +49,7 @@ use crate::{
4949} ;
5050use fyrox:: gui:: control_trait_proxy_impls;
5151use fyrox:: gui:: formatted_text:: WrapMode ;
52- use fyrox:: gui:: message:: MessageData ;
52+ use fyrox:: gui:: message:: { DeliveryMode , MessageData } ;
5353use fyrox:: gui:: text_box:: EmptyTextPlaceholder ;
5454use std:: hash:: { Hash , Hasher } ;
5555use std:: {
@@ -276,23 +276,26 @@ impl Control for NodeSelector {
276276 }
277277 }
278278 } else if let Some ( TreeRootMessage :: Select ( selection) ) = message. data_from ( self . tree_root ) {
279- ui. send (
280- self . handle ,
281- NodeSelectorMessage :: Selection (
282- selection
283- . iter ( )
284- . filter_map ( |s| {
285- let tree_data = ui. try_get ( * s) . ok ( ) ?. user_data_cloned :: < TreeData > ( ) ?;
286-
287- Some ( SelectedHandle {
288- handle : tree_data. handle ,
289- inner_type_id : tree_data. inner_type_id ,
290- derived_type_ids : tree_data. derived_type_ids ,
279+ if message. delivery_mode != DeliveryMode :: SyncOnly {
280+ ui. send (
281+ self . handle ,
282+ NodeSelectorMessage :: Selection (
283+ selection
284+ . iter ( )
285+ . filter_map ( |s| {
286+ let tree_data =
287+ ui. try_get ( * s) . ok ( ) ?. user_data_cloned :: < TreeData > ( ) ?;
288+
289+ Some ( SelectedHandle {
290+ handle : tree_data. handle ,
291+ inner_type_id : tree_data. inner_type_id ,
292+ derived_type_ids : tree_data. derived_type_ids ,
293+ } )
291294 } )
292- } )
293- . collect ( ) ,
294- ) ,
295- ) ;
295+ . collect ( ) ,
296+ ) ,
297+ ) ;
298+ }
296299 } else if let Some ( TreeRootMessage :: ItemsChanged ) = message. data_from ( self . tree_root ) {
297300 self . sync_selection ( ui) ;
298301 }
@@ -333,7 +336,7 @@ impl NodeSelector {
333336 )
334337 }
335338
336- ui. send ( self . tree_root , TreeRootMessage :: Select ( selected_trees) ) ;
339+ ui. send_sync ( self . tree_root , TreeRootMessage :: Select ( selected_trees) ) ;
337340 }
338341}
339342
0 commit comments