Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-07-24 16:35:41 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-07-24 16:35:41 +0400
commitc67e910df6f3608ee01a1f3bb757b922e9c51b41 (patch)
tree6641648794b141c3c61b184ed9596f6b822f786a /source/blender/editors/space_node/node_edit.c
parentdee1d86e65a47f72a8198cc233816843f98d5429 (diff)
fix/workaround for glitch with node editing active texture bug - where a node texture in a group could get `stuck` and the buttons UI wouldnt update to other active nodes.
Files saved with this error will still give problems, toggling group edit will fix.
Diffstat (limited to 'source/blender/editors/space_node/node_edit.c')
-rw-r--r--source/blender/editors/space_node/node_edit.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c
index 6fc33a8baad..8f09900f38a 100644
--- a/source/blender/editors/space_node/node_edit.c
+++ b/source/blender/editors/space_node/node_edit.c
@@ -796,8 +796,15 @@ void snode_make_group_editable(SpaceNode *snode, bNode *gnode)
bNode *node;
/* make sure nothing has group editing on */
- for (node = snode->nodetree->nodes.first; node; node = node->next)
+ for (node = snode->nodetree->nodes.first; node; node = node->next) {
nodeGroupEditClear(node);
+
+ /* while we're here, clear texture active */
+ if (node->typeinfo->nclass == NODE_CLASS_TEXTURE) {
+ /* this is not 100% sure to be reliable, see comment on the flag */
+ node->flag &= ~NODE_ACTIVE_TEXTURE;
+ }
+ }
if (gnode == NULL) {
/* with NULL argument we do a toggle */
@@ -809,8 +816,14 @@ void snode_make_group_editable(SpaceNode *snode, bNode *gnode)
snode->edittree = nodeGroupEditSet(gnode, 1);
/* deselect all other nodes, so we can also do grabbing of entire subtree */
- for (node = snode->nodetree->nodes.first; node; node = node->next)
+ for (node = snode->nodetree->nodes.first; node; node = node->next) {
node_deselect(node);
+
+ if (node->typeinfo->nclass == NODE_CLASS_TEXTURE) {
+ /* this is not 100% sure to be reliable, see comment on the flag */
+ node->flag &= ~NODE_ACTIVE_TEXTURE;
+ }
+ }
node_select(gnode);
}
else