diff options
Diffstat (limited to 'source/blender/src')
-rw-r--r-- | source/blender/src/drawaction.c | 26 | ||||
-rw-r--r-- | source/blender/src/editipo_lib.c | 16 |
2 files changed, 29 insertions, 13 deletions
diff --git a/source/blender/src/drawaction.c b/source/blender/src/drawaction.c index cf76d69f60b..9ae34d59226 100644 --- a/source/blender/src/drawaction.c +++ b/source/blender/src/drawaction.c @@ -599,10 +599,10 @@ static void draw_channel_names(void) */ draw_action_channel_names(act); } - if ( (key = get_action_mesh_key()) ) { + else if ( (key = get_action_mesh_key()) ) { /* if there is a mesh selected with rvk's, - * then draw the RVK names - */ + * then draw the RVK names + */ draw_action_mesh_names(key); } @@ -953,7 +953,7 @@ void drawactionspace(ScrArea *sa, void *spacedata) * oughta fix it */ - if (key) { + if (!act && key) { if (G.v2d->cur.ymin < -CHANNELHEIGHT) G.v2d->cur.ymin = -CHANNELHEIGHT; @@ -1007,9 +1007,10 @@ void drawactionspace(ScrArea *sa, void *spacedata) check_action_context(G.saction); /* Draw channel strips */ - draw_channel_strips(G.saction); - - if (key) { + if (act) { + draw_channel_strips(G.saction); + } + else if (key) { /* if there is a mesh with rvk's selected, * then draw the key frames in the action window */ @@ -1048,15 +1049,18 @@ void drawactionspace(ScrArea *sa, void *spacedata) draw_channel_names(); if(sa->winx > 50 + NAMEWIDTH + SLIDERWIDTH) { - if (key) { + if (act) { + /* if there is an action, draw sliders for its + * ipo-curve channels in the action window + */ + action_icu_buts(G.saction); + } + else if (key) { /* if there is a mesh with rvk's selected, * then draw the key frames in the action window */ meshactionbuts(G.saction, OBACT, key); } - else if (act) { - action_icu_buts(G.saction); - } } } diff --git a/source/blender/src/editipo_lib.c b/source/blender/src/editipo_lib.c index 8707e5dd12c..96be44e1234 100644 --- a/source/blender/src/editipo_lib.c +++ b/source/blender/src/editipo_lib.c @@ -27,6 +27,8 @@ /* ********** General calls (minimal dependencies) for editing Ipos in Blender ************* */ +#include <stdio.h> + #include "BLI_blenlib.h" #include "BLI_arithb.h" @@ -132,10 +134,20 @@ int geticon_ipo_blocktype(short blocktype) char *getname_ipocurve(IpoCurve *icu) { switch (icu->blocktype) { - case ID_OB: - return getname_ob_ei(icu->adrcode, 0); /* dummy 2nd arg */ + case ID_OB: + return getname_ob_ei(icu->adrcode, 0); /* dummy 2nd arg */ case ID_PO: return getname_ac_ei(icu->adrcode); + case ID_KE: + { + /* quick 'hack' - must find a better solution to this + * although shapekey ipo-curves can have names, + * we don't have access to that info yet. + */ + static char name[32]; + sprintf(name, "Key %d", icu->adrcode); + return name; + } default: /* fixme - add all of the other types! */ return NULL; |