From 186320f458dec1e8436a67f1ae57346d6f40a82d Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Mon, 24 Mar 2008 11:25:34 +0000 Subject: [PATCH] Peach Request: Fix for little bug in Action Editor Quick patch for action-filtering system, so that the IKEY (Insert Key) -> "Key Only Selected" doesn't key in channels that are hidden. Documented the convoulted logic there a bit. Note: constraint channel keys in group channels seems to have become broken again at some point before this commit --- source/blender/src/editaction.c | 8 +++++++- source/blender/src/edittime.c | 1 - 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/source/blender/src/editaction.c b/source/blender/src/editaction.c index cf74c04678d..c97451e1d57 100644 --- a/source/blender/src/editaction.c +++ b/source/blender/src/editaction.c @@ -418,9 +418,15 @@ static void actdata_filter_action (ListBase *act_data, bAction *act, int filter_ /* filters here are a bit convoulted... * - groups show a "summary" of keyframes beside their name which must accessable for tools which handle keyframes * - groups can be collapsed (and those tools which are only interested in channels rely on knowing that group is closed) + * + * cases when we should include action-channels and so-forth inside group: + * - we don't care about visibility + * - group is expanded + * - we're interested in keyframes, but not if they appear in selected channels */ if ( (!(filter_mode & ACTFILTER_VISIBLE) || EXPANDED_AGRP(agrp)) || - (filter_mode & (ACTFILTER_IPOKEYS|ACTFILTER_ONLYICU)) ) + ( ((filter_mode & ACTFILTER_IPOKEYS) || (filter_mode & ACTFILTER_ONLYICU)) && + !(filter_mode & ACTFILTER_SEL) ) ) { if (!(filter_mode & ACTFILTER_FOREDIT) || EDITABLE_AGRP(agrp)) { for (achan= agrp->channels.first; achan && achan->grp==agrp; achan= achan->next) { diff --git a/source/blender/src/edittime.c b/source/blender/src/edittime.c index 34c5bb0ff96..5a10ea65738 100644 --- a/source/blender/src/edittime.c +++ b/source/blender/src/edittime.c @@ -602,7 +602,6 @@ static void select_timeline_marker_frame(int frame, unsigned char shift) /* set the animation preview range of scene */ void anim_previewrange_set() { - extern float get_action_frame(Object *ob, float cframe); rcti rect; rctf rectf; short val, mval[2];