Fix for wrong event clipping in open node groups (bug #29383). The internal node blocks of the group were created before the group node block itself, so the node group block clips events for internal nodes. Generally, blocks should be created just like the drawing order.

This commit is contained in:
Lukas Toenne 2011-11-24 09:26:19 +00:00
parent 7a2725048d
commit f35fa9e59f

@ -933,15 +933,16 @@ void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d)
if(snode->nodetree) {
bNode *node;
/* init ui blocks for opened node group trees first
* so they're in the correct depth stack order */
node_uiblocks_init(C, snode->nodetree);
/* uiBlocks must be initialized in drawing order for correct event clipping.
* Node group internal blocks added after the main group block.
*/
for(node= snode->nodetree->nodes.first; node; node= node->next) {
if(node->flag & NODE_GROUP_EDIT)
node_uiblocks_init(C, (bNodeTree *)node->id);
}
node_uiblocks_init(C, snode->nodetree);
node_update_nodetree(C, snode->nodetree, 0.0f, 0.0f);
node_draw_nodetree(C, ar, snode, snode->nodetree);