Skip to content

Commit a63a97b

Browse files
committed
fixed infinite message loop in node selector
1 parent 6e6f7b5 commit a63a97b

File tree

1 file changed

+21
-18
lines changed

1 file changed

+21
-18
lines changed

editor/src/scene/selector.rs

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ use crate::{
4949
};
5050
use fyrox::gui::control_trait_proxy_impls;
5151
use fyrox::gui::formatted_text::WrapMode;
52-
use fyrox::gui::message::MessageData;
52+
use fyrox::gui::message::{DeliveryMode, MessageData};
5353
use fyrox::gui::text_box::EmptyTextPlaceholder;
5454
use std::hash::{Hash, Hasher};
5555
use 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

Comments
 (0)