[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36227] trunk/blender/source/blender: Corrected updating inside edited groups, fix for #27018.
Lukas Toenne
lukas.toenne at googlemail.com
Tue Apr 19 17:15:50 CEST 2011
Revision: 36227
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36227
Author: lukastoenne
Date: 2011-04-19 15:15:50 +0000 (Tue, 19 Apr 2011)
Log Message:
-----------
Corrected updating inside edited groups, fix for #27018. This was caused by edit updates being restricted to the actual node. Edit functions now should use the generic snode_tag_changed, which also updates all instances of the currently edited group.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/node.c
trunk/blender/source/blender/editors/space_node/node_edit.c
Modified: trunk/blender/source/blender/blenkernel/intern/node.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/node.c 2011-04-19 14:36:26 UTC (rev 36226)
+++ trunk/blender/source/blender/blenkernel/intern/node.c 2011-04-19 15:15:50 UTC (rev 36227)
@@ -56,7 +56,6 @@
#include "BKE_fcurve.h"
#include "BKE_node.h"
#include "BKE_utildefines.h"
-#include "BKE_node.h"
#include "PIL_time.h"
Modified: trunk/blender/source/blender/editors/space_node/node_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_edit.c 2011-04-19 14:36:26 UTC (rev 36226)
+++ trunk/blender/source/blender/editors/space_node/node_edit.c 2011-04-19 15:15:50 UTC (rev 36227)
@@ -460,6 +460,19 @@
node_tree_from_ID(snode->id, &snode->nodetree, &snode->edittree, NULL);
}
+static void snode_tag_changed(SpaceNode *snode, bNode *node)
+{
+ bNode *gnode;
+
+ if (node)
+ NodeTagChanged(snode->edittree, node);
+
+ /* if inside group, tag entire group */
+ gnode= node_tree_get_editgroup(snode->nodetree);
+ if(gnode)
+ NodeTagIDChanged(snode->nodetree, gnode->id);
+}
+
void node_set_active(SpaceNode *snode, bNode *node)
{
nodeSetActive(snode->edittree, node);
@@ -508,15 +521,8 @@
node->flag |= NODE_DO_OUTPUT;
if(was_output==0) {
- bNode *gnode;
+ snode_tag_changed(snode, node);
- NodeTagChanged(snode->edittree, node);
-
- /* if inside group, tag entire group */
- gnode= node_tree_get_editgroup(snode->nodetree);
- if(gnode)
- NodeTagIDChanged(snode->nodetree, gnode->id);
-
ED_node_changed_update(snode->id, node);
}
@@ -1553,7 +1559,7 @@
link->fromsock= sock;
}
ntreeSolveOrder(snode->edittree);
- NodeTagChanged(snode->edittree, node);
+ snode_tag_changed(snode, node);
}
}
}
@@ -1896,7 +1902,7 @@
if (replace)
nodeRemSocketLinks(snode->edittree, sock_to);
nodeAddLink(snode->edittree, node_fr, sock_fr, node_to, sock_to);
- NodeTagChanged(snode->edittree, node_to);
+ snode_tag_changed(snode, node_to);
++numlinks;
break;
}
@@ -1960,7 +1966,7 @@
if(node->id)
id_us_plus(node->id);
- NodeTagChanged(snode->edittree, node);
+ snode_tag_changed(snode, node);
}
if(snode->nodetree->type==NTREE_TEXTURE) {
@@ -2135,8 +2141,7 @@
case MIDDLEMOUSE:
if(link->tosock && link->fromsock) {
/* send changed events for original tonode and new */
- if(link->tonode)
- NodeTagChanged(snode->edittree, link->tonode);
+ snode_tag_changed(snode, link->tonode);
/* we might need to remove a link */
if(in_out==SOCK_OUT)
@@ -2209,7 +2214,7 @@
if(link) {
/* send changed event to original tonode */
if(link->tonode)
- NodeTagChanged(snode->edittree, link->tonode);
+ snode_tag_changed(snode, link->tonode);
nldrag->node= link->fromnode;
nldrag->sock= link->fromsock;
@@ -2363,7 +2368,7 @@
next= link->next;
if(cut_links_intersect(link, mcoords, i)) {
- NodeTagChanged(snode->edittree, link->tonode);
+ snode_tag_changed(snode, link->tonode);
nodeRemLink(snode->edittree, link);
}
}
@@ -2746,7 +2751,7 @@
if(node->flag & SELECT) {
if(node->inputs.first && node->outputs.first) {
node->flag ^= NODE_MUTED;
- NodeTagChanged(snode->edittree, node);
+ snode_tag_changed(snode, node);
}
}
}
More information about the Bf-blender-cvs
mailing list