Almost-sure-fix for crashes after joining meshes or curves. Was caused by
not updating depsgraph, and still evaluating it.
This commit is contained in:
@@ -3355,11 +3355,11 @@ void join_curve(int type)
|
|||||||
cu= ob->data;
|
cu= ob->data;
|
||||||
addlisttolist(&cu->nurb, &tempbase);
|
addlisttolist(&cu->nurb, &tempbase);
|
||||||
|
|
||||||
|
DAG_scene_sort(G.scene); // because we removed object(s), call before editmode!
|
||||||
|
|
||||||
enter_editmode();
|
enter_editmode();
|
||||||
exit_editmode(1);
|
exit_editmode(1);
|
||||||
|
|
||||||
DAG_scene_sort(G.scene); // because we removed object(s)
|
|
||||||
|
|
||||||
allqueue(REDRAWVIEW3D, 0);
|
allqueue(REDRAWVIEW3D, 0);
|
||||||
allqueue(REDRAWBUTSEDIT, 0);
|
allqueue(REDRAWBUTSEDIT, 0);
|
||||||
BIF_undo_push("Join");
|
BIF_undo_push("Join");
|
||||||
|
|||||||
@@ -428,13 +428,13 @@ void join_mesh(void)
|
|||||||
/* other mesh users */
|
/* other mesh users */
|
||||||
test_object_materials((ID *)me);
|
test_object_materials((ID *)me);
|
||||||
|
|
||||||
|
DAG_scene_sort(G.scene); // removed objects, need to rebuild dag before editmode call
|
||||||
|
|
||||||
enter_editmode();
|
enter_editmode();
|
||||||
exit_editmode(1); // freedata, but no undo
|
exit_editmode(1); // freedata, but no undo
|
||||||
|
|
||||||
allqueue(REDRAWVIEW3D, 0);
|
allqueue(REDRAWVIEW3D, 0);
|
||||||
allqueue(REDRAWBUTSSHADING, 0);
|
allqueue(REDRAWBUTSSHADING, 0);
|
||||||
DAG_scene_sort(G.scene); // removed objects, need to rebuild dag
|
|
||||||
DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
|
|
||||||
|
|
||||||
BIF_undo_push("Join Mesh");
|
BIF_undo_push("Join Mesh");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user