Page MenuHome

Fix T57096: Crash when scaling bones
ClosedPublic

Authored by Philipp Oeser (lichtwerk) on Oct 8 2018, 1:08 PM.

Diff Detail

Repository
rB Blender

Event Timeline

Brecht Van Lommel (brecht) requested changes to this revision.Oct 8 2018, 3:26 PM

I don't think this is the right fix, it shouldn't be running this code at all when in edit mode.

The problem is that for TFM_BONESIZE there is an exception that pretends we are in pose mode.

/* exception... hackish, we want bonesize to use bone orientation matrix (ton) */
if (t->mode == TFM_BONESIZE) {
    t->flag &= ~(T_EDIT | T_POINTS);
    t->flag |= T_POSE;

Unless it breaks something, I think we should disable all that pose mode updates in special_aftertrans_update when this exception is used. We don't want to do auto IK, auto keyframing, motion paths, ... in edit mode, that's only going to give problems.

This revision now requires changes to proceed.Oct 8 2018, 3:26 PM
Brecht Van Lommel (brecht) requested changes to this revision.Oct 17 2018, 2:14 PM
Brecht Van Lommel (brecht) added inline comments.
source/blender/editors/transform/transform_conversions.c
6694

Explain why this code is needed in the comment rather than referring to the bug. Something like:

/* Handle the exception where for TFM_BONESIZE in edit mode we pretend to be
 * in pose mode, in that case we don't do operations like autokeyframing. */
6695

Calling the DEG_id_tag_update() here seems good.

This revision now requires changes to proceed.Oct 17 2018, 2:14 PM
This revision is now accepted and ready to land.Oct 17 2018, 2:55 PM
This revision was automatically updated to reflect the committed changes.