Fix orphaned child layers left behind when a group is ungrouped or deleted (#1655)
* Fix Incomplete Deletion of Children Nodes in delete_layer Function * delete debug message * change variable name on iterator of child_layers
This commit is contained in:
parent
b31e8f7b6d
commit
c8ea9e05a6
|
|
@ -516,7 +516,9 @@ impl<'a> ModifyInputsContext<'a> {
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
LayerNodeIdentifier::new(id, self.document_network).delete(self.document_metadata);
|
let layer_node = LayerNodeIdentifier::new(id, self.document_network);
|
||||||
|
let child_layers = layer_node.decendants(self.document_metadata).map(|layer| layer.to_node()).collect::<Vec<_>>();
|
||||||
|
layer_node.delete(self.document_metadata);
|
||||||
|
|
||||||
let new_input = node.inputs[1].clone();
|
let new_input = node.inputs[1].clone();
|
||||||
let deleted_position = node.metadata.position;
|
let deleted_position = node.metadata.position;
|
||||||
|
|
@ -536,7 +538,7 @@ impl<'a> ModifyInputsContext<'a> {
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut delete_nodes = vec![id];
|
let mut delete_nodes = vec![id];
|
||||||
for (_node, id) in self.document_network.upstream_flow_back_from_nodes(vec![id], true) {
|
for (_node, id) in self.document_network.upstream_flow_back_from_nodes([vec![id], child_layers].concat(), true) {
|
||||||
// Don't delete the node if other layers depend on it.
|
// Don't delete the node if other layers depend on it.
|
||||||
if self.outwards_links.get(&id).is_some_and(|nodes| nodes.len() > 1) {
|
if self.outwards_links.get(&id).is_some_and(|nodes| nodes.len() > 1) {
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue