diff --git a/editor/src/messages/tool/tool_messages/select_tool.rs b/editor/src/messages/tool/tool_messages/select_tool.rs index 31bd2c3a4b..fbf63aafbd 100644 --- a/editor/src/messages/tool/tool_messages/select_tool.rs +++ b/editor/src/messages/tool/tool_messages/select_tool.rs @@ -92,6 +92,7 @@ pub enum SelectToolMessage { remove_from_selection: Key, }, EditLayer, + EditLayerExec, Enter, PointerMove(SelectToolPointerKeys), PointerOutsideViewport(SelectToolPointerKeys), @@ -323,6 +324,7 @@ impl<'a> MessageHandler> for Sele PointerMove, Abort, EditLayer, + EditLayerExec, Enter, ); @@ -985,14 +987,19 @@ impl Fsm for SelectToolFsmState { self } (_, SelectToolMessage::EditLayer) => { - // Edit the clicked layer + responses.add(DeferMessage::AfterGraphRun { + messages: vec![SelectToolMessage::EditLayerExec.into()], + }); + + self + } + (_, SelectToolMessage::EditLayerExec) => { if let Some(intersect) = document.click(input) { match tool_data.nested_selection_behavior { NestedSelectionBehavior::Shallowest => edit_layer_shallowest_manipulation(document, intersect, responses), NestedSelectionBehavior::Deepest => edit_layer_deepest_manipulation(intersect, &document.network_interface, responses), } } - self } ( diff --git a/editor/src/node_graph_executor.rs b/editor/src/node_graph_executor.rs index 300fb8208e..c127ed7344 100644 --- a/editor/src/node_graph_executor.rs +++ b/editor/src/node_graph_executor.rs @@ -288,7 +288,7 @@ impl NodeGraphExecutor { } else { self.process_node_graph_output(node_graph_output, responses)?; } - responses.add_front(DeferMessage::TriggerGraphRun(execution_id, execution_context.document_id)); + responses.add(DeferMessage::TriggerGraphRun(execution_id, execution_context.document_id)); // Update the Data panel on the frontend using the value of the inspect result. if let Some(inspect_result) = (self.previous_node_to_inspect.is_some()).then_some(inspect_result).flatten() {