Page MenuHome

Fix T74292: Dope sheet (Mask mode): Adjusting keyframes doesn't tag for update
ClosedPublic

Authored by Sybren A. Stüvel (sybren) on Mar 2 2020, 2:49 PM.

Details

Summary

This fixes T74292, where moving a mask transform keyframe in the dopesheet didn't reflect in the animation.

I removed some special casing for the ANIMCONT_MASK category, and ensured the ANIM_list_elem_update() function is also called for Mask animation data. Unfortunately, there were no comments that explained why mask animation was excluded.

Asking for review by @Campbell Barton (campbellbarton) as conceptually it's a change in his code from 6 years ago (rB193e77cc673e6836525ab1a0bad0ff5491e04d23).

To test:

  1. Play the animation once to see how it looks.
  2. Move the middle (selected) keyframe towards frame 30.
  3. Play the animation again and see it doesn't change (unless you already applied this patch, then it nicely updates).

Diff Detail

Repository
rB Blender
Branch
temp-T74292 (branched from master)
Build Status
Buildable 6878
Build 6878: arc lint + arc unit

Event Timeline

Campbell Barton (campbellbarton) accepted this revision.EditedMar 3 2020, 5:52 AM

This is asserting for me: BLI_assert failed: source/blender/editors/animation/anim_deps.c:433, ANIM_animdata_update(), at 'ale->update == 0'

Committed with minor edit, making this match grease pencil since they share logic regarding transform.
Also add note on why sorting is commented out.

rB8447f45f0976: Fix T74292: Dope sheet (Mask mode) keyframe editing misses update

This revision is now accepted and ready to land.Mar 3 2020, 5:52 AM

Noticed the image space was missing an update too, made follow up commit to resolve this: rB73bd0ef12d98: Fix dope sheet (Mask mode) keyframe editing not image/clip views

@Campbell Barton (campbellbarton) Thanks for the review. However, please only commit things in my name that I actually wrote. I don't understand the comment "While correct & we could enable it: 'posttrans_gpd_clean' currently handles as well as removing doubles.", so if someone finds it and asks me questions about it (because according to Git I wrote it) I wouldn't be able to.