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>2011-06-22 17:30:59 +0400
committerJoshua Leung <aligorith@gmail.com>2011-06-22 17:30:59 +0400
commit5021dd3476012b1c64a5ffaa7986537d1e263245 (patch)
tree40c49b7e7f08140f85aa214b4be7dfe0943a9af7 /source/blender/editors/animation/anim_channels_edit.c
parentc48e1467384d6069b1a4f8c7bc4d7fa239c2b545 (diff)
Bugfixes for recent commits:
* Insert Key on Selected Channels in Action Editor was broken * Transform/Select All tools in Action Editor were broken as result of filtering changes. * Set Visibility operator, when used from Graph Editor now does similar things to the TabKey lock/unlock operator with regards to the flags it uses for filtering
Diffstat (limited to 'source/blender/editors/animation/anim_channels_edit.c')
-rw-r--r--source/blender/editors/animation/anim_channels_edit.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c
index e7edafdddf5..5b37c8071cd 100644
--- a/source/blender/editors/animation/anim_channels_edit.c
+++ b/source/blender/editors/animation/anim_channels_edit.c
@@ -1236,9 +1236,20 @@ static int animchannels_visibility_set_exec(bContext *C, wmOperator *UNUSED(op))
ANIM_animdata_filter(&ac, &all_data, filter, ac.data, ac.datatype);
/* hide all channels not selected
- * - restrict this to only applying on settings we can get to in the list
+ * - hierarchy matters if we're doing this from the channels region
+ * since we only want to apply this to channels we can "see",
+ * and have these affect their relatives
+ * - but for Graph Editor, this gets used also from main region
+ * where hierarchy doesn't apply, as for [#21276]
*/
- filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_UNSEL | ANIMFILTER_NODUPLIS);
+ if ((ac.spacetype == SPACE_IPO) && (ac.regiontype != RGN_TYPE_CHANNELS)) {
+ /* graph editor (case 2) */
+ filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_UNSEL | ANIMFILTER_CURVE_VISIBLE | ANIMFILTER_NODUPLIS);
+ }
+ else {
+ /* standard case */
+ filter= (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_UNSEL | ANIMFILTER_NODUPLIS);
+ }
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
for (ale= anim_data.first; ale; ale= ale->next) {