diff options
author | Germano Cavalcante <germano.costa@ig.com.br> | 2020-06-10 02:27:40 +0300 |
---|---|---|
committer | Germano Cavalcante <germano.costa@ig.com.br> | 2020-06-10 02:27:51 +0300 |
commit | 46e0ec05ef1fb75fb3e5b4a713a5302ace49e546 (patch) | |
tree | 8eff449f33050c445ee3367c941da57b8b61882e /source/blender/editors/transform/transform_convert_node.c | |
parent | 63a40ed422bc61e9cd952282a636c53a9d8f3fde (diff) |
Cleanup: Move each special_aftertrans_update to their respective TransData file
Diffstat (limited to 'source/blender/editors/transform/transform_convert_node.c')
-rw-r--r-- | source/blender/editors/transform/transform_convert_node.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/source/blender/editors/transform/transform_convert_node.c b/source/blender/editors/transform/transform_convert_node.c index d23a8f960c1..38db8708d0c 100644 --- a/source/blender/editors/transform/transform_convert_node.c +++ b/source/blender/editors/transform/transform_convert_node.c @@ -194,3 +194,39 @@ void flushTransNodes(TransInfo *t) } /** \} */ + +/* -------------------------------------------------------------------- */ +/** \name Special After Transform Node + * \{ */ + +void special_aftertrans_update__node(bContext *C, TransInfo *t) +{ + struct Main *bmain = CTX_data_main(C); + const bool canceled = (t->state == TRANS_CANCEL); + + SpaceNode *snode = (SpaceNode *)t->area->spacedata.first; + if (canceled && t->remove_on_cancel) { + /* remove selected nodes on cancel */ + bNodeTree *ntree = snode->edittree; + if (ntree) { + bNode *node, *node_next; + for (node = ntree->nodes.first; node; node = node_next) { + node_next = node->next; + if (node->flag & NODE_SELECT) { + nodeRemoveNode(bmain, ntree, node, true); + } + } + ntreeUpdateTree(bmain, ntree); + } + } + + if (!canceled) { + ED_node_post_apply_transform(C, snode->edittree); + ED_node_link_insert(bmain, t->area); + } + + /* clear link line */ + ED_node_link_intersect_test(t->area, 0); +} + +/** \} */ |