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);


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to