Fix T93413: Nodes 'Make Links' fails for multi input socket
This was the case for multi input sockets that have a link already. Since we have multi input sockets, the way we use `socket_is_available` is not really giving the expected result on these. When used for input sockets the intention is to find a free socket (either for noodle **replacement**, then it is always available, or just the next free available socket). Now I would think without the intention to replace an existing link, a multi input socket should still be available. From the inside of the function, the `replace` argument turns [namewise] to `allow_used`, which sounds a little different (so one might argue that if `allow_used` is `False` this should also trigger for already connected multi input sockets). In the end, this is an issue with the variable naming though, cant think of a usecase where the patch change would really go against intentions. Maniphest Tasks: T93413 Differential Revision: https://developer.blender.org/D13866
This commit is contained in:
parent
9506dcf675
commit
a5610da1d5
Notes:
blender-bot
2023-02-14 11:34:30 +01:00
Referenced by issue #93413, make links in geometry node editor doesn't work with multi input socket
|
@ -212,7 +212,10 @@ static bool socket_is_available(bNodeTree *UNUSED(ntree), bNodeSocket *sock, con
|
|||
}
|
||||
|
||||
if (!allow_used && (sock->flag & SOCK_IN_USE)) {
|
||||
return false;
|
||||
/* Multi input sockets are available (even if used). */
|
||||
if (!(sock->flag & SOCK_MULTI_INPUT)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
Loading…
Reference in New Issue