diff options
author | Amélie Fondevilla <amelie.fondevilla@les-fees-speciales.coop> | 2022-08-05 13:04:36 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@blender.org> | 2022-08-05 13:06:03 +0300 |
commit | 45f483681fef58bfc0c2099629c940be53e24972 (patch) | |
tree | 78a1ff7cda600722ab42f2613c127501ecef6953 /source/blender/editors/animation | |
parent | f8d13a1b58f774f33db87c581c5b4b263171cf74 (diff) |
Fix T100093: Channel selection and grouping issues
Channel selection in graph editor was broken by rB3c5620aabd33 because
the selection took into account grease pencil channels. Such channels
are now removed from selection in containers that does not use them (NLA
and Graph Editor).
Grouping was broken from a similar issue. The grouping operation now
completely filters out grease pencil channels since the operator is only
defined for f-curve channels.
Reviewed By: sybren
Maniphest Tasks: T100093
Differential Revision: https://developer.blender.org/D15601
Diffstat (limited to 'source/blender/editors/animation')
-rw-r--r-- | source/blender/editors/animation/anim_channels_edit.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c index 1c7b3496723..06a62b7a9de 100644 --- a/source/blender/editors/animation/anim_channels_edit.c +++ b/source/blender/editors/animation/anim_channels_edit.c @@ -1695,7 +1695,7 @@ static int animchannels_group_exec(bContext *C, wmOperator *op) /* Handle each animdata block separately, so that the regrouping doesn't flow into blocks. */ filter = (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_ANIMDATA | - ANIMFILTER_NODUPLIS); + ANIMFILTER_NODUPLIS | ANIMFILTER_FCURVESONLY); ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype); for (ale = anim_data.first; ale; ale = ale->next) { @@ -3260,10 +3260,14 @@ static int mouse_anim_channels(bContext *C, bAnimListElem *ale; int filter; int notifierFlags = 0; + ScrArea *area = CTX_wm_area(C); /* get the channel that was clicked on */ /* filter channels */ filter = (ANIMFILTER_DATA_VISIBLE | ANIMFILTER_LIST_VISIBLE | ANIMFILTER_LIST_CHANNELS); + if (ELEM(area->spacetype, SPACE_NLA, SPACE_GRAPH)) { + filter |= ANIMFILTER_FCURVESONLY; + } ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); /* get channel from index */ |