[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26729] trunk/blender/source/blender/ editors/animation/anim_channels_edit.c: Bugfix #21029: Animation editor' s channel-group check boxes behave oddly
Joshua Leung
aligorith at gmail.com
Tue Feb 9 09:38:45 CET 2010
Revision: 26729
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26729
Author: aligorith
Date: 2010-02-09 09:38:45 +0100 (Tue, 09 Feb 2010)
Log Message:
-----------
Bugfix #21029: Animation editor's channel-group check boxes behave oddly
This commit fixes the first issue in the report - deselecting unselected channels does not flush the change in state - which resulted in the channels of collapsed and unselected groups not getting unselected too (a consistency issue).
Modified Paths:
--------------
trunk/blender/source/blender/editors/animation/anim_channels_edit.c
Modified: trunk/blender/source/blender/editors/animation/anim_channels_edit.c
===================================================================
--- trunk/blender/source/blender/editors/animation/anim_channels_edit.c 2010-02-09 06:40:54 UTC (rev 26728)
+++ trunk/blender/source/blender/editors/animation/anim_channels_edit.c 2010-02-09 08:38:45 UTC (rev 26729)
@@ -1064,21 +1064,26 @@
if (ANIM_animdata_get_context(C, &ac) == 0)
return OPERATOR_CANCELLED;
+ /* get list of all channels that selection may need to be flushed to */
+ filter= ANIMFILTER_CHANNELS;
+ ANIM_animdata_filter(&ac, &all_data, filter, ac.data, ac.datatype);
/* hide all channels not selected */
filter= (ANIMFILTER_VISIBLE | ANIMFILTER_UNSEL);
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
- for (ale= anim_data.first; ale; ale= ale->next)
+ for (ale= anim_data.first; ale; ale= ale->next) {
+ /* clear setting first */
ANIM_channel_setting_set(&ac, ale, ACHANNEL_SETTING_VISIBLE, ACHANNEL_SETFLAG_CLEAR);
+
+ /* now also flush selection status as appropriate
+ * NOTE: in some cases, this may result in repeat flushing being performed
+ */
+ ANIM_flush_setting_anim_channels(&ac, &all_data, ale, ACHANNEL_SETTING_VISIBLE, 0);
+ }
BLI_freelistN(&anim_data);
-
- /* get list of all channels that selection may need to be flushed to */
- filter= ANIMFILTER_CHANNELS;
- ANIM_animdata_filter(&ac, &all_data, filter, ac.data, ac.datatype);
-
/* make all the selected channels visible */
filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL);
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
More information about the Bf-blender-cvs
mailing list