From 843ffdc49a10a25444ea8c33f8f9418cd43407f3 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Sat, 6 Aug 2005 19:13:13 +0000 Subject: [PATCH] - bug fix, extrude and duplicate automatically enter transform which may request info from the derived surface, this means we have to force a manual recalc before we enter transform... proper design of mesh data invalidation/recalc should make this unnecessary... --- source/blender/src/editmesh_add.c | 10 ++++++++++ source/blender/src/editmesh_tools.c | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/source/blender/src/editmesh_add.c b/source/blender/src/editmesh_add.c index 25249f890aa..5d1fcbf91a3 100644 --- a/source/blender/src/editmesh_add.c +++ b/source/blender/src/editmesh_add.c @@ -438,6 +438,16 @@ void adduplicate_mesh(void) waitcursor(0); countall(); + + /* We need to force immediate calculation here because + * transform may use derived objects (which are now stale). + * + * This shouldn't be necessary, derived queries should be + * automatically building this data if invalid. Or something. + */ + DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA); + object_handle_update(G.obedit); + BIF_TransformSetUndo("Add Duplicate"); initTransform(TFM_TRANSLATION, CTX_NO_PET); Transform(); diff --git a/source/blender/src/editmesh_tools.c b/source/blender/src/editmesh_tools.c index 40bb7a297bc..4d77982b562 100644 --- a/source/blender/src/editmesh_tools.c +++ b/source/blender/src/editmesh_tools.c @@ -584,6 +584,15 @@ void extrude_mesh(void) EM_fgon_flags(); countall(); + /* We need to force immediate calculation here because + * transform may use derived objects (which are now stale). + * + * This shouldn't be necessary, derived queries should be + * automatically building this data if invalid. Or something. + */ + DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA); + object_handle_update(G.obedit); + /* individual faces? */ BIF_TransformSetUndo("Extrude"); if(nr==2) {