Fix T54240: automatic node link moving should take into account type.
authorMatthias Ellerbeck <voyager25>
Mon, 19 Mar 2018 20:30:33 +0000 (21:30 +0100)
committerBrecht Van Lommel <brechtvanlommel@gmail.com>
Mon, 19 Mar 2018 20:52:49 +0000 (21:52 +0100)
Without this a "Clearcoat" link could be moved to "Clearcoat Normal"
for example, which doesn't make much sense.

Differential Revision: https://developer.blender.org/D3105

source/blender/nodes/intern/node_util.c

index 43d4136..9f04c12 100644 (file)
@@ -124,6 +124,11 @@ void node_filter_label(bNodeTree *UNUSED(ntree), bNode *node, char *label, int m
 /* test if two sockets are interchangeable */
 static bool node_link_socket_match(bNodeSocket *a, bNodeSocket *b)
 {
+       /* check if sockets are of the same type */
+       if (a->typeinfo != b->typeinfo) {
+               return false;
+       }
+
        /* tests if alphabetic prefix matches
         * this allows for imperfect matches, such as numeric suffixes,
         * like Color1/Color2