Revision: 40172
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40172
Author:   mont29
Date:     2011-09-12 17:27:02 +0000 (Mon, 12 Sep 2011)
Log Message:
-----------
Fixes #28599: Wrong re-assigning of layers in RenderLayer comp nodes when 
deleting a render layer.
Also added the check of comp nodetree of all scenes, as others might also use 
that scene in their compositing!

Modified Paths:
--------------
    trunk/blender/source/blender/editors/render/render_shading.c

Modified: trunk/blender/source/blender/editors/render/render_shading.c
===================================================================
--- trunk/blender/source/blender/editors/render/render_shading.c        
2011-09-12 15:29:37 UTC (rev 40171)
+++ trunk/blender/source/blender/editors/render/render_shading.c        
2011-09-12 17:27:02 UTC (rev 40172)
@@ -529,7 +529,7 @@
 
 static int render_layer_remove_exec(bContext *C, wmOperator *UNUSED(op))
 {
-       Scene *scene= CTX_data_scene(C);
+       Scene *scene = CTX_data_scene(C), *sce;
        SceneRenderLayer *rl;
        int act= scene->r.actlay;
 
@@ -541,15 +541,17 @@
        MEM_freeN(rl);
 
        scene->r.actlay= 0;
-       
-       if(scene->nodetree) {
-               bNode *node;
-               for(node= scene->nodetree->nodes.first; node; node= node->next) 
{
-                       if(node->type==CMP_NODE_R_LAYERS && node->id==NULL) {
-                               if(node->custom1==act)
-                                       node->custom1= 0;
-                               else if(node->custom1>act)
-                                       node->custom1--;
+
+       for(sce = CTX_data_main(C)->scene.first; sce; sce = sce->id.next) {
+               if(sce->nodetree) {
+                       bNode *node;
+                       for(node = sce->nodetree->nodes.first; node; node = 
node->next) {
+                               if(node->type==CMP_NODE_R_LAYERS && 
(Scene*)node->id==scene) {
+                                       if(node->custom1==act)
+                                               node->custom1= 0;
+                                       else if(node->custom1>act)
+                                               node->custom1--;
+                               }
                        }
                }
        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to