diff options
author | Joshua Leung <aligorith@gmail.com> | 2009-05-09 06:37:12 +0400 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2009-05-09 06:37:12 +0400 |
commit | 029c27b0bed239cfc9b27b6ef92bcd3d87bcfd1b (patch) | |
tree | db4c07d66a0564e8ec4864f04db15547649a2bb5 /source/blender/editors/space_action/action_select.c | |
parent | 5fa80e74a1d18ca8798b2b42f6b4ecc09787ba30 (diff) |
2.5 Bugfixes:
More work on getting these marker-dependent tools working. They should finally work now :)
Diffstat (limited to 'source/blender/editors/space_action/action_select.c')
-rw-r--r-- | source/blender/editors/space_action/action_select.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/source/blender/editors/space_action/action_select.c b/source/blender/editors/space_action/action_select.c index bb3f16dd506..d4782418be7 100644 --- a/source/blender/editors/space_action/action_select.c +++ b/source/blender/editors/space_action/action_select.c @@ -390,18 +390,19 @@ static void markers_selectkeys_between (bAnimContext *ac) bAnimListElem *ale; int filter; - BeztEditFunc select_cb; + BeztEditFunc ok_cb, select_cb; BeztEditData bed; float min, max; /* get extreme markers */ - ED_markers_get_minmax(&ac->markers, 1, &min, &max); - + ED_markers_get_minmax(ac->markers, 1, &min, &max); min -= 0.5f; max += 0.5f; /* get editing funcs + data */ + ok_cb= ANIM_editkeyframes_ok(BEZT_OK_FRAMERANGE); select_cb= ANIM_editkeyframes_select(SELECT_ADD); + memset(&bed, 0, sizeof(BeztEditData)); bed.f1= min; bed.f2= max; @@ -416,11 +417,11 @@ static void markers_selectkeys_between (bAnimContext *ac) if (nob) { ANIM_nla_mapping_apply_fcurve(nob, ale->key_data, 0, 1); - ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, select_cb, NULL); + ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, select_cb, NULL); ANIM_nla_mapping_apply_fcurve(nob, ale->key_data, 1, 1); } else { - ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, NULL, select_cb, NULL); + ANIM_fcurve_keys_bezier_loop(&bed, ale->key_data, ok_cb, select_cb, NULL); } } @@ -473,7 +474,7 @@ static void columnselect_action_keys (bAnimContext *ac, short mode) break; case ACTKEYS_COLUMNSEL_MARKERS_COLUMN: /* list of selected markers */ - ED_markers_make_cfra_list(&ac->markers, &bed.list, 1); + ED_markers_make_cfra_list(ac->markers, &bed.list, 1); break; default: /* invalid option */ @@ -765,6 +766,7 @@ static void mouse_action_keys (bAnimContext *ac, int mval[2], short select_mode, if (ale == NULL) { /* channel not found */ printf("Error: animation channel (index = %d) not found in mouse_action_keys() \n", channel_index); + return; } else { /* found match - must return here... */ |