forked from bartvdbraak/blender
* Fixed a crash in the action window when attempting to manipulate keys with no action loaded.
This addresses bug #1354 - Thanks to gabio for the report
This commit is contained in:
parent
3038507b1b
commit
25c9dd464e
@ -2327,6 +2327,7 @@ void winqreadactionspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case DKEY:
|
case DKEY:
|
||||||
|
if (act) {
|
||||||
if (key) {
|
if (key) {
|
||||||
if (G.qual & LR_SHIFTKEY && mval[0]>ACTWIDTH) {
|
if (G.qual & LR_SHIFTKEY && mval[0]>ACTWIDTH) {
|
||||||
duplicate_meshchannel_keys(key);
|
duplicate_meshchannel_keys(key);
|
||||||
@ -2338,9 +2339,11 @@ void winqreadactionspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
|||||||
remake_action_ipos(act);
|
remake_action_ipos(act);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GKEY:
|
case GKEY:
|
||||||
|
if (act) {
|
||||||
if (mval[0]>=ACTWIDTH) {
|
if (mval[0]>=ACTWIDTH) {
|
||||||
if (key) {
|
if (key) {
|
||||||
transform_meshchannel_keys('g', key);
|
transform_meshchannel_keys('g', key);
|
||||||
@ -2349,6 +2352,7 @@ void winqreadactionspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
|||||||
transform_actionchannel_keys ('g');
|
transform_actionchannel_keys ('g');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HKEY:
|
case HKEY:
|
||||||
@ -2381,6 +2385,7 @@ void winqreadactionspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case SKEY:
|
case SKEY:
|
||||||
|
if (act) {
|
||||||
if (mval[0]>=ACTWIDTH) {
|
if (mval[0]>=ACTWIDTH) {
|
||||||
if (key) {
|
if (key) {
|
||||||
transform_meshchannel_keys('s', key);
|
transform_meshchannel_keys('s', key);
|
||||||
@ -2389,6 +2394,7 @@ void winqreadactionspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
|
|||||||
transform_actionchannel_keys ('s');
|
transform_actionchannel_keys ('s');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/*** set the Ipo type ***/
|
/*** set the Ipo type ***/
|
||||||
|
@ -383,24 +383,34 @@ static uiBlock *action_selectmenu(void *arg_unused)
|
|||||||
|
|
||||||
static void do_action_keymenu_transformmenu(void *arg, int event)
|
static void do_action_keymenu_transformmenu(void *arg, int event)
|
||||||
{
|
{
|
||||||
|
SpaceAction *saction;
|
||||||
|
bAction *act;
|
||||||
Key *key;
|
Key *key;
|
||||||
|
|
||||||
key = get_action_mesh_key();
|
key = get_action_mesh_key();
|
||||||
|
saction= curarea->spacedata.first;
|
||||||
|
|
||||||
|
act=saction->action;
|
||||||
|
|
||||||
switch(event)
|
switch(event)
|
||||||
{
|
{
|
||||||
case ACTMENU_KEY_TRANSFORM_MOVE:
|
case ACTMENU_KEY_TRANSFORM_MOVE:
|
||||||
|
if (act) {
|
||||||
if (key) {
|
if (key) {
|
||||||
transform_meshchannel_keys('g', key);
|
transform_meshchannel_keys('g', key);
|
||||||
} else {
|
} else {
|
||||||
transform_actionchannel_keys ('g');
|
transform_actionchannel_keys ('g');
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case ACTMENU_KEY_TRANSFORM_SCALE:
|
case ACTMENU_KEY_TRANSFORM_SCALE:
|
||||||
|
if (act) {
|
||||||
if (key) {
|
if (key) {
|
||||||
transform_meshchannel_keys('s', key);
|
transform_meshchannel_keys('s', key);
|
||||||
} else {
|
} else {
|
||||||
transform_actionchannel_keys ('s');
|
transform_actionchannel_keys ('s');
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -574,13 +584,13 @@ static void do_action_keymenu(void *arg, int event)
|
|||||||
if (!saction)
|
if (!saction)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
act = saction->action;
|
act = saction->action;
|
||||||
key = get_action_mesh_key();
|
key = get_action_mesh_key();
|
||||||
|
|
||||||
switch(event)
|
switch(event)
|
||||||
{
|
{
|
||||||
case ACTMENU_KEY_DUPLICATE:
|
case ACTMENU_KEY_DUPLICATE:
|
||||||
|
if (act) {
|
||||||
if (key) {
|
if (key) {
|
||||||
duplicate_meshchannel_keys(key);
|
duplicate_meshchannel_keys(key);
|
||||||
}
|
}
|
||||||
@ -588,6 +598,7 @@ static void do_action_keymenu(void *arg, int event)
|
|||||||
duplicate_actionchannel_keys();
|
duplicate_actionchannel_keys();
|
||||||
remake_action_ipos(act);
|
remake_action_ipos(act);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ACTMENU_KEY_DELETE:
|
case ACTMENU_KEY_DELETE:
|
||||||
@ -601,8 +612,6 @@ static void do_action_keymenu(void *arg, int event)
|
|||||||
case ACTMENU_KEY_BAKE:
|
case ACTMENU_KEY_BAKE:
|
||||||
bake_action_with_client (G.saction->action, OBACT, 0.01);
|
bake_action_with_client (G.saction->action, OBACT, 0.01);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user