Skip to content

Commit 99984fc

Browse files
authored
Fix regression in shallow select (#3050)
* Add defer message for shallow select * Fixed infinite loop
1 parent 67a7b98 commit 99984fc

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

editor/src/messages/tool/tool_messages/select_tool.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ pub enum SelectToolMessage {
9292
remove_from_selection: Key,
9393
},
9494
EditLayer,
95+
EditLayerExec,
9596
Enter,
9697
PointerMove(SelectToolPointerKeys),
9798
PointerOutsideViewport(SelectToolPointerKeys),
@@ -323,6 +324,7 @@ impl<'a> MessageHandler<ToolMessage, &mut ToolActionMessageContext<'a>> for Sele
323324
PointerMove,
324325
Abort,
325326
EditLayer,
327+
EditLayerExec,
326328
Enter,
327329
);
328330

@@ -985,14 +987,19 @@ impl Fsm for SelectToolFsmState {
985987
self
986988
}
987989
(_, SelectToolMessage::EditLayer) => {
988-
// Edit the clicked layer
990+
responses.add(DeferMessage::AfterGraphRun {
991+
messages: vec![SelectToolMessage::EditLayerExec.into()],
992+
});
993+
994+
self
995+
}
996+
(_, SelectToolMessage::EditLayerExec) => {
989997
if let Some(intersect) = document.click(input) {
990998
match tool_data.nested_selection_behavior {
991999
NestedSelectionBehavior::Shallowest => edit_layer_shallowest_manipulation(document, intersect, responses),
9921000
NestedSelectionBehavior::Deepest => edit_layer_deepest_manipulation(intersect, &document.network_interface, responses),
9931001
}
9941002
}
995-
9961003
self
9971004
}
9981005
(

editor/src/node_graph_executor.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ impl NodeGraphExecutor {
288288
} else {
289289
self.process_node_graph_output(node_graph_output, responses)?;
290290
}
291-
responses.add_front(DeferMessage::TriggerGraphRun(execution_id, execution_context.document_id));
291+
responses.add(DeferMessage::TriggerGraphRun(execution_id, execution_context.document_id));
292292

293293
// Update the Data panel on the frontend using the value of the inspect result.
294294
if let Some(inspect_result) = (self.previous_node_to_inspect.is_some()).then_some(inspect_result).flatten() {

0 commit comments

Comments
 (0)