mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-25 04:18:12 +08:00
Fix regression in shallow select (#3050)
* Add defer message for shallow select * Fixed infinite loop
This commit is contained in:
@@ -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<ToolMessage, &mut ToolActionMessageContext<'a>> 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
|
||||
}
|
||||
(
|
||||
|
||||
Reference in New Issue
Block a user