[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20008] branches/blender2.5/blender/source /blender/editors/util/ed_util.c: 2.5
Ton Roosendaal
ton at blender.org
Thu Apr 30 14:51:38 CEST 2009
Revision: 20008
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20008
Author: ton
Date: 2009-04-30 14:51:38 +0200 (Thu, 30 Apr 2009)
Log Message:
-----------
2.5
Bug reported by Joshua: quitting Blender via window header quit widget
didn't free editmode stuff.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/editors/util/ed_util.c
Modified: branches/blender2.5/blender/source/blender/editors/util/ed_util.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/util/ed_util.c 2009-04-30 12:45:13 UTC (rev 20007)
+++ branches/blender2.5/blender/source/blender/editors/util/ed_util.c 2009-04-30 12:51:38 UTC (rev 20008)
@@ -42,6 +42,7 @@
#include "BKE_context.h"
#include "BKE_global.h"
+#include "BKE_main.h"
#include "ED_armature.h"
#include "ED_mesh.h"
@@ -52,39 +53,45 @@
/* ********* general editor util funcs, not BKE stuff please! ********* */
+/* frees all editmode stuff */
void ED_editors_exit(bContext *C)
{
- Object *ob= CTX_data_edit_object(C);
+ Scene *sce;
/* frees all editmode undos */
undo_editmode_clear();
undo_imagepaint_clear();
- /* global in meshtools... */
- mesh_octree_table(ob, NULL, NULL, 'e');
-
- if(ob) {
- if(ob->type==OB_MESH) {
- Mesh *me= ob->data;
- if(me->edit_mesh) {
- free_editMesh(me->edit_mesh);
- MEM_freeN(me->edit_mesh);
- me->edit_mesh= NULL;
+ for(sce=G.main->scene.first; sce; sce= sce->id.next) {
+ if(sce->obedit) {
+ Object *ob= sce->obedit;
+
+ /* global in meshtools... */
+ mesh_octree_table(ob, NULL, NULL, 'e');
+
+ if(ob) {
+ if(ob->type==OB_MESH) {
+ Mesh *me= ob->data;
+ if(me->edit_mesh) {
+ free_editMesh(me->edit_mesh);
+ MEM_freeN(me->edit_mesh);
+ me->edit_mesh= NULL;
+ }
+ }
+ else if(ob->type==OB_ARMATURE) {
+ ED_armature_edit_free(ob);
+ }
+ else if(ob->type==OB_FONT) {
+ // free_editText();
+ }
+ // else if(ob->type==OB_MBALL)
+ // BLI_freelistN(&editelems);
+ // free_editLatt();
+ // free_posebuf();
}
}
- else if(ob->type==OB_ARMATURE) {
- ED_armature_edit_free(ob);
- }
- else if(ob->type==OB_FONT) {
- // free_editText();
- }
- // else if(ob->type==OB_MBALL)
- // BLI_freelistN(&editelems);
}
- // free_editLatt();
- // free_posebuf();
-
}
More information about the Bf-blender-cvs
mailing list