diff options
Diffstat (limited to 'source/blender/editors/space_node/space_node.c')
-rw-r--r-- | source/blender/editors/space_node/space_node.c | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c index 1c2f604a650..3c5f4a163a2 100644 --- a/source/blender/editors/space_node/space_node.c +++ b/source/blender/editors/space_node/space_node.c @@ -70,16 +70,13 @@ ARegion *node_has_buttons_region(ScrArea *sa) { ARegion *ar, *arnew; - - for(ar= sa->regionbase.first; ar; ar= ar->next) - if(ar->regiontype==RGN_TYPE_UI) - return ar; + + ar= BKE_area_find_region_type(sa, RGN_TYPE_UI); + if(ar) return ar; /* add subdiv level; after header */ - for(ar= sa->regionbase.first; ar; ar= ar->next) - if(ar->regiontype==RGN_TYPE_HEADER) - break; - + ar= BKE_area_find_region_type(sa, RGN_TYPE_HEADER); + /* is error! */ if(ar==NULL) return NULL; @@ -203,6 +200,9 @@ static void node_area_listener(ScrArea *sa, wmNotifier *wmn) ED_area_tag_refresh(sa); else if(wmn->data==ND_SHADING_DRAW) ED_area_tag_refresh(sa); + else if(wmn->action==NA_ADDED && snode->edittree) + nodeSetActiveID(snode->edittree, ID_MA, wmn->reference); + } break; case NC_TEXTURE: @@ -225,6 +225,15 @@ static void node_area_listener(ScrArea *sa, wmNotifier *wmn) case NC_NODE: if (wmn->action == NA_EDITED) ED_area_tag_refresh(sa); + else if (wmn->action == NA_SELECTED) + ED_area_tag_redraw(sa); + break; + case NC_SCREEN: + switch(wmn->data) { + case ND_ANIMPLAY: + ED_area_tag_refresh(sa); + break; + } break; case NC_IMAGE: |