[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32592] trunk/blender/source/blender/ editors/object/object_modifier.c: Fix for [#24319] Removing a cloth or softbody simulation in paticle mode problem

Janne Karhu jhkarh at gmail.com
Tue Oct 19 12:17:19 CEST 2010


Revision: 32592
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32592
Author:   jhk
Date:     2010-10-19 12:17:19 +0200 (Tue, 19 Oct 2010)

Log Message:
-----------
Fix for [#24319] Removing a cloth or softbody simulation in paticle mode problem

Modified Paths:
--------------
    trunk/blender/source/blender/editors/object/object_modifier.c

Modified: trunk/blender/source/blender/editors/object/object_modifier.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_modifier.c	2010-10-19 09:50:43 UTC (rev 32591)
+++ trunk/blender/source/blender/editors/object/object_modifier.c	2010-10-19 10:17:19 UTC (rev 32592)
@@ -196,6 +196,11 @@
 		CustomData_free_layer_active(&me->fdata, CD_MDISPS, me->totface);
 	}
 
+	if(ELEM(md->type, eModifierType_Softbody, eModifierType_Cloth) &&
+		ob->particlesystem.first == NULL) {
+		ob->mode &= ~OB_MODE_PARTICLE_EDIT;
+	}
+
 	BLI_remlink(&ob->modifiers, md);
 	modifier_free(md);
 
@@ -658,11 +663,18 @@
 	Scene *scene= CTX_data_scene(C);
 	Object *ob = ED_object_active_context(C);
 	ModifierData *md = edit_modifier_property_get(op, ob, 0);
+	int mode_orig = ob->mode;
 	
 	if(!ob || !md || !ED_object_modifier_remove(op->reports, bmain, scene, ob, md))
 		return OPERATOR_CANCELLED;
 
 	WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
+
+	/* if cloth/softbody was removed, particle mode could be cleared */
+	if(mode_orig & OB_MODE_PARTICLE_EDIT)
+		if((ob->mode & OB_MODE_PARTICLE_EDIT)==0)
+			if(scene->basact && scene->basact->object==ob)
+				WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_MODE_OBJECT, NULL);
 	
 	return OPERATOR_FINISHED;
 }





More information about the Bf-blender-cvs mailing list