Page MenuHome

highlighting issues in Dope Sheet
Closed, ResolvedPublic


Operating system: Windows 10 Pro 10.0.16299 Build 16299
Graphics card: NVIDIA GeForce GTX 1070

Blender Version
Date: 2019-01-23 00:32
Hash: dc3b5024be1a
Branch: blender2.7

Short description of error
selected objects not highlighting in Dope Sheet

Exact steps for others to reproduce the error

  1. select object in 3D view window (or in Dope Sheet)
  2. open Dope Sheet window
  3. Selected object is not highlighted as it was in 2.79; neither is the row, making it very difficult to know which keyframes go with which object

I've noticed this for a while; it seems like some times, the highlighting works, but more often than not, it doesn't.

See attached screenshot.

I believe it's the same issue regardless of the .blend file, so I didn't attach this one, because it's rather large. But I can if needed.


Event Timeline

Philipp Oeser (lichtwerk) claimed this task.
Philipp Oeser (lichtwerk) triaged this task as Confirmed, Medium priority.

Confirmed, checking...

Hi. Anything new to report on the issue of highlighting in the Dope Sheet?

Will look into this again today.

I already did some digging some time ago and got it to work (sort of) by tagging ID_RECALC_TRANSFORM in a bunch of places, but that didnt seem like the right solution to me..
More in a bit...

OK, so it seems for some reason the SELECT flag on the object and its base are not in sync.

Not being too familiar with this, I am unsure if this is supposed to be like this, or if we are in the middle of something being updated while Dopesheet is drawing...

Sooo, we have a couple of occasions where this SELECT flag is checked for (indirectly):

  • ANIM_channel_draw()
  • draw_channel_strips()
  • actkeys_channels_get_selected_extents()
  • nla_channels_get_selected_extents()
  • maybe more

and it does so via ANIM_channel_setting_get(ac, ale, ACHANNEL_SETTING_SELECT)
This in turn is done via the bAnimChannelType's setting_flag / setting_ptr.

I have traced the SELECT flag in acf_object_setting_ptr() and it is not the same for the base and the object there.
If I simply check against the ob->base_flag instead of ob->flag there everything seems to be fine and working (see D4606), base_flag seems to be up to date already...

[P.S.: only other way I found to get it to update is flagging ID_RECALC_TRANSFORM in numerous places where objects are selected, but this seems wrong -- as mentioned above...]

Just downloaded and opened the new build. You guys are the best!