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.
This commit is contained in:
Brecht Van Lommel
2006-06-28 13:49:11 +00:00
parent 9ecffb4314
commit 5b4fa8a93e

View File

@@ -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");
}