Commit: c292b4ebb9152c2231e7d50417e35549cc58a656 Author: Bastien Montagne Date: Mon Jan 25 20:22:30 2016 +0100 Branches: master https://developer.blender.org/rBc292b4ebb9152c2231e7d50417e35549cc58a656
Fix T46456: Crash when aborting stroke while using dyntopo. Basically, the 'fake undo' restoring orig coordinates in this case cannot work with dyntopo, since it assumes nothing was added/removed. For now, just prevent this 'restoration' when dyntopo is used, this is no ideal solution from user PoV - but it's better than plain ugly crash! Complete solution seems much more involved and outside of scope of bug handling, added a TODO note: http://wiki.blender.org/index.php/Dev:Source/Development/Todo/Tools#Sculpting =================================================================== M source/blender/editors/sculpt_paint/sculpt.c =================================================================== diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 73f829a..7cc7041 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -4817,8 +4817,11 @@ static void sculpt_brush_stroke_cancel(bContext *C, wmOperator *op) Object *ob = CTX_data_active_object(C); SculptSession *ss = ob->sculpt; Sculpt *sd = CTX_data_tool_settings(C)->sculpt; + const Brush *brush = BKE_paint_brush(&sd->paint); - if (ss->cache) { + /* XXX Cancelling strokes that way does not work with dynamic topology, user will have to do real undo for now. + * See T46456. */ + if (ss->cache && !sculpt_stroke_is_dynamic_topology(ss, brush)) { paint_mesh_restore_co(sd, ob); } _______________________________________________ Bf-blender-cvs mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-blender-cvs
