Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2006-06-28 17:49:11 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2006-06-28 17:49:11 +0400
commit5b4fa8a93e6f7fbfb590892764aa92e2e4533d76 (patch)
tree58f67875613cc10744c83c2b94d2979a6221de09 /source
parent9ecffb4314e25cd7f52eca12a0b70e30ebcda5e6 (diff)
Fix for bug #4523:
- Crash on collapse with subsurf modifier. Cause was a missing DAG update when calling from the 3d view header menu. There really should be some standard way to place these countall, DAG update, redraw and undo push calls for editmesh tools, now they're in random places in the editmesh and UI code.
Diffstat (limited to 'source')
-rw-r--r--source/blender/src/editmesh_tools.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/source/blender/src/editmesh_tools.c b/source/blender/src/editmesh_tools.c
index bda748688a8..2eb74b4c582 100644
--- a/source/blender/src/editmesh_tools.c
+++ b/source/blender/src/editmesh_tools.c
@@ -6131,6 +6131,8 @@ int collapseEdges(void)
removedoublesflag(1, MERGELIMIT);
/*get rid of this!*/
countall();
+ DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA);
+ allqueue(REDRAWVIEW3D, 0);
return mergecount;
}
@@ -6185,6 +6187,8 @@ int merge_target(int target, int uvmerge)
}
countall();
+ DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA);
+ allqueue(REDRAWVIEW3D, 0);
return removedoublesflag(1,MERGELIMIT);
}
@@ -6351,6 +6355,8 @@ void pathselect(void)
BLI_heap_free(heap, NULL);
EM_select_flush();
countall();
+ DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA);
+ allqueue(REDRAWVIEW3D, 0);
}
}
else{
@@ -6386,6 +6392,8 @@ void region_to_loop(void)
G.scene->selectmode = SCE_SELECT_EDGE;
EM_selectmode_set();
countall();
+ DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA);
+ allqueue(REDRAWVIEW3D, 0);
BIF_undo_push("Face Region to Edge Loop");
}
@@ -6542,5 +6550,7 @@ void loop_to_region(void)
countall();
freecollections(&allcollections);
+ DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA);
+ allqueue(REDRAWVIEW3D, 0);
BIF_undo_push("Edge Loop to Face Region");
}