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:
authorCampbell Barton <ideasman42@gmail.com>2020-10-22 07:46:31 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-10-22 07:55:30 +0300
commit7ddc49ad34acc21dc69ca82c9913234033f7c209 (patch)
tree9b176e17a0db4d8be91e66f467dd96da5b098f2b /source/blender/blenkernel/intern/fcurve.c
parentc53ac5e1c488628f75133df81d7f7484ec89ae9a (diff)
Fix T81905: Active keyframe unavailable when handle selected
Selecting an F-Curve handle caused an assertion as well as treating the key-frame as inactive. Allow active the keyframe to be active when it's handle is selected, as is done with bezier curves.
Diffstat (limited to 'source/blender/blenkernel/intern/fcurve.c')
-rw-r--r--source/blender/blenkernel/intern/fcurve.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c
index fafcbaec10f..dcf4c78dfd8 100644
--- a/source/blender/blenkernel/intern/fcurve.c
+++ b/source/blender/blenkernel/intern/fcurve.c
@@ -842,7 +842,8 @@ bool BKE_fcurve_calc_range(
void BKE_fcurve_active_keyframe_set(FCurve *fcu, const BezTriple *active_bezt)
{
/* The active keyframe should always be selected. */
- BLI_assert(active_bezt == NULL || (active_bezt->f2 & SELECT));
+ BLI_assert((active_bezt == NULL) ||
+ ((active_bezt->f1 | active_bezt->f2 | active_bezt->f3) & SELECT));
fcu->active_keyframe_index = (active_bezt == NULL) ? FCURVE_ACTIVE_KEYFRAME_NONE :
active_bezt - fcu->bezt;
}
@@ -861,7 +862,7 @@ int BKE_fcurve_active_keyframe_index(const FCurve *fcu)
}
const BezTriple *active_bezt = &fcu->bezt[active_keyframe_index];
- if ((active_bezt->f2 & SELECT) == 0) {
+ if (((active_bezt->f1 | active_bezt->f2 | active_bezt->f3) & SELECT) == 0) {
/* The active keyframe should always be selected. If it's not selected, it can't be active. */
return FCURVE_ACTIVE_KEYFRAME_NONE;
}