[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23851] trunk/blender/source/blender/ makesrna/intern/rna_space.c: TransformOrientation enum is in the transform operators too, so we can' t always cast to screen.

Martin Poirier theeth at yahoo.com
Thu Oct 15 03:34:31 CEST 2009


Revision: 23851
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23851
Author:   theeth
Date:     2009-10-15 03:34:29 +0200 (Thu, 15 Oct 2009)

Log Message:
-----------
TransformOrientation enum is in the transform operators too, so we can't always cast to screen.

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_space.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_space.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_space.c	2009-10-15 01:06:34 UTC (rev 23850)
+++ trunk/blender/source/blender/makesrna/intern/rna_space.c	2009-10-15 01:34:29 UTC (rev 23851)
@@ -160,7 +160,7 @@
 
 EnumPropertyItem *rna_TransformOrientation_itemf(bContext *C, PointerRNA *ptr, int *free)
 {
-	Scene *scene = ((bScreen*)ptr->id.data)->scene;
+	Scene *scene = NULL;
 	ListBase *transform_spaces;
 	TransformOrientation *ts= NULL;
 	EnumPropertyItem tmp = {0, "", 0, "", ""};
@@ -172,19 +172,26 @@
 	RNA_enum_items_add_value(&item, &totitem, transform_orientation_items, V3D_MANIP_LOCAL);
 	RNA_enum_items_add_value(&item, &totitem, transform_orientation_items, V3D_MANIP_VIEW);
 
+	if (ptr->type == &RNA_Space3DView)
+		scene = ((bScreen*)ptr->id.data)->scene;
+	else
+		scene = CTX_data_scene(C); /* can't use scene from ptr->id.data because that enum is also used by operators */
+
 	if(scene) {
 		transform_spaces = &scene->transform_spaces;
 		ts = transform_spaces->first;
 	}
 
 	if(ts)
+	{
 		RNA_enum_item_add_separator(&item, &totitem);
 
-	for(; ts; ts = ts->next) {
-		tmp.identifier = ts->name;
-		tmp.name= ts->name;
-		tmp.value = i++;
-		RNA_enum_item_add(&item, &totitem, &tmp);
+		for(; ts; ts = ts->next) {
+			tmp.identifier = ts->name;
+			tmp.name= ts->name;
+			tmp.value = i++;
+			RNA_enum_item_add(&item, &totitem, &tmp);
+		}
 	}
 
 	RNA_enum_item_end(&item, &totitem);





More information about the Bf-blender-cvs mailing list