Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Leung <aligorith@gmail.com>2010-01-23 02:51:31 +0300
committerJoshua Leung <aligorith@gmail.com>2010-01-23 02:51:31 +0300
commit8dd14e1eed6f65af3a19a5cae8202c8f701e94ed (patch)
treed620b36b75d131d66032a88b021ba9e76a021d99 /source/blender/editors/animation
parentf0d89a041f89084c278f46949ebc6eeb07f73e85 (diff)
Graph Editor: Bugfixes for option where only the keyframes of selected F-Curves are shown
* Selected keyframes in unselected F-Curves were still being modified, although not shown * Selection tools for keyframes were changing the selection status of F-Curves, making keyframes sometimes disappear after trying to select another keyframe * Warning fixes in a few other files
Diffstat (limited to 'source/blender/editors/animation')
-rw-r--r--source/blender/editors/animation/anim_filter.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c
index e6d9bcf2d64..2e5d2bfa38a 100644
--- a/source/blender/editors/animation/anim_filter.c
+++ b/source/blender/editors/animation/anim_filter.c
@@ -442,11 +442,15 @@ short ANIM_animdata_get_context (const bContext *C, bAnimContext *ac)
/* quick macro to test if an anim-channel (F-Curve) is selected ok for editing purposes
* - _SELEDIT means that only selected curves will have visible+editable keyframes
+ *
+ * checks here work as follows:
+ * 1) seledit off - don't need to consider the implications of this option
+ * 2) foredit off - we're not considering editing, so channel is ok still
+ * 3) test_func (i.e. selection test) - only if selected, this test will pass
*/
-// FIXME: this doesn't work cleanly yet...
#define ANIMCHANNEL_SELEDITOK(test_func) \
( !(filter_mode & ANIMFILTER_SELEDIT) || \
- (filter_mode & ANIMFILTER_CHANNELS) || \
+ !(filter_mode & ANIMFILTER_FOREDIT) || \
(test_func) )
/* ----------- 'Private' Stuff --------------- */
@@ -952,6 +956,7 @@ static int animdata_filter_action (ListBase *anim_data, bDopeSheet *ads, bAction
* - group is expanded
* - we just need the F-Curves present
*/
+ // FIXME: checking if groups are expanded is only valid if in one or other modes
if ( (!(filter_mode & ANIMFILTER_VISIBLE) || EXPANDED_AGRP(agrp)) || (filter_mode & ANIMFILTER_CURVESONLY) )
{
/* for the Graph Editor, curves may be set to not be visible in the view to lessen clutter,
@@ -1804,6 +1809,14 @@ static int animdata_filter_dopesheet (ListBase *anim_data, bAnimContext *ac, bDo
return 0;
}
+ /* augment the filter-flags with settings based on the dopesheet filterflags
+ * so that some temp settings can get added automagically...
+ */
+ if (ads->filterflag & ADS_FILTER_SELEDIT) {
+ /* only selected F-Curves should get their keyframes considered for editability */
+ filter_mode |= ANIMFILTER_SELEDIT;
+ }
+
/* scene-linked animation */
// TODO: sequencer, composite nodes - are we to include those here too?
{