Node Editor / Properties Region:
authorThomas Dinges <blender@dingto.org>
Fri, 13 Apr 2012 11:58:16 +0000 (11:58 +0000)
committerThomas Dinges <blender@dingto.org>
Fri, 13 Apr 2012 11:58:16 +0000 (11:58 +0000)
* Improved checks for Grease Pencil and Active Node panel, so the panel only gets shown when there is valid data, rather than showing the empty panel.

Thanks to Lukas Tönne for some help! :)

source/blender/editors/space_node/node_buttons.c

index 49151cc5dcd37b0bc65f845982e7b21b9b571147..c67cb5f7c710c742d37f316512583ee5eba1c353 100644 (file)
 
 /* ******************* node space & buttons ************** */
 
+/* poll for active nodetree */
+static int active_nodetree_poll(const bContext *C, PanelType *UNUSED(pt))
+{
+       SpaceNode *snode= CTX_wm_space_node(C);
+       
+       return (snode && snode->nodetree);
+}
+
 /* poll callback for active node */
 static int active_node_poll(const bContext *C, PanelType *UNUSED(pt))
 {
        SpaceNode *snode= CTX_wm_space_node(C);
        
-       // TODO: include check for whether there is an active node...
-       return (snode && snode->nodetree);
+       return (snode && snode->edittree && nodeGetActive(snode->edittree));
 }
 
 /* active node */
@@ -160,7 +167,7 @@ void node_buttons_register(ARegionType *art)
        strcpy(pt->idname, "NODE_PT_gpencil");
        strcpy(pt->label, "Grease Pencil");
        pt->draw= gpencil_panel_standard;
-       pt->poll= active_node_poll;
+       pt->poll= active_nodetree_poll;
        BLI_addtail(&art->paneltypes, pt);
 }