Fix #36939, Objects with nodes appear in gray in viewport, using Solid shade, and...
authorLukas Toenne <lukas.toenne@googlemail.com>
Fri, 4 Oct 2013 08:27:54 +0000 (08:27 +0000)
committerLukas Toenne <lukas.toenne@googlemail.com>
Fri, 4 Oct 2013 08:27:54 +0000 (08:27 +0000)
The "active ID node" concept has become slightly more complex with pynodes. To find the active material or other ID links in a node tree recursively requires a hash key based on the "parent" tree of the
current node group. To avoid returning NULL in case this key is not yet initialized (i.e. ID node has not been activated yet), just accept 0 key as well for the base node tree.

source/blender/blenkernel/intern/node.c

index e296e97fb117557402ea0d1f99b518cdea327e0e..c0df306a3fa9370aee9b1f3a24ced3c707d9a732 100644 (file)
@@ -2321,7 +2321,7 @@ bNode *nodeGetActive(bNodeTree *ntree)
 
 static bNode *node_get_active_id_recursive(bNodeInstanceKey active_key, bNodeInstanceKey parent_key, bNodeTree *ntree, short idtype)
 {
-       if (parent_key.value == active_key.value) {
+       if (parent_key.value == active_key.value || active_key.value == 0) {
                bNode *node;
                for (node = ntree->nodes.first; node; node = node->next)
                        if (node->id && GS(node->id->name) == idtype)