Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Schempp <fabianschempp@googlemail.com>2021-04-15 12:38:46 +0300
committerFabian Schempp <fabianschempp@googlemail.com>2021-04-15 12:38:46 +0300
commit4cf3010714e92af52a1943feac0c89a9a41f297f (patch)
tree276d87f412e289dfa2fd85c6b2ae1309fe20ac26 /source/blender/editors/space_node/node_relationships.c
parent05dbbd83f00d270c00cb1a0904c504c31e1812af (diff)
Fix T87171: Update multi input socket indices
When inserting a node on top of a link, the multi input socket indices weren't updated. This fixes that and keeps the relative order of the links the same. Author: Wannes Malfait Reviewed By: Fabian Schempp Differential Revision: https://developer.blender.org/D10969
Diffstat (limited to 'source/blender/editors/space_node/node_relationships.c')
-rw-r--r--source/blender/editors/space_node/node_relationships.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/source/blender/editors/space_node/node_relationships.c b/source/blender/editors/space_node/node_relationships.c
index 4fa0c8c3c5a..8b0d7ef77b3 100644
--- a/source/blender/editors/space_node/node_relationships.c
+++ b/source/blender/editors/space_node/node_relationships.c
@@ -2260,7 +2260,12 @@ void ED_node_link_insert(Main *bmain, ScrArea *area)
node_remove_extra_links(snode, link);
link->flag &= ~NODE_LINKFLAG_HILITE;
- nodeAddLink(snode->edittree, select, best_output, node, sockto);
+ bNodeLink *new_link = nodeAddLink(snode->edittree, select, best_output, node, sockto);
+
+ /* Copy the socket index for the new link, and reset it for the old link. This way the
+ * relative order of links is preserved, and the links get drawn in the right place. */
+ new_link->multi_input_socket_index = link->multi_input_socket_index;
+ link->multi_input_socket_index = 0;
/* set up insert offset data, it needs stuff from here */
if ((snode->flag & SNODE_SKIP_INSOFFSET) == 0) {
@@ -2277,8 +2282,6 @@ void ED_node_link_insert(Main *bmain, ScrArea *area)
snode_update(snode, select);
ED_node_tag_update_id((ID *)snode->edittree);
ED_node_tag_update_id(snode->id);
-
- sort_multi_input_socket_links(snode, node, NULL, NULL);
}
}
}