Revision: 23079
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23079
Author:   blendix
Date:     2009-09-09 13:10:28 +0200 (Wed, 09 Sep 2009)

Log Message:
-----------
2.5: WM_menu_invoke now uses the first enum property it can find,
if no enum property named "type" is available.

Modified Paths:
--------------
    
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_operators.c

Modified: 
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_operators.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_operators.c  
    2009-09-09 11:05:10 UTC (rev 23078)
+++ 
branches/blender2.5/blender/source/blender/windowmanager/intern/wm_operators.c  
    2009-09-09 11:10:28 UTC (rev 23079)
@@ -448,13 +448,24 @@
 /* ************ default op callbacks, exported *********** */
 
 /* invoke callback, uses enum property named "type" */
-/* only weak thing is the fixed property name... */
 int WM_menu_invoke(bContext *C, wmOperator *op, wmEvent *event)
 {
-       PropertyRNA *prop= RNA_struct_find_property(op->ptr, "type");
+       PropertyRNA *prop;
        uiPopupMenu *pup;
        uiLayout *layout;
 
+       prop= RNA_struct_find_property(op->ptr, "type");
+
+       if(!prop) {
+               RNA_STRUCT_BEGIN(op->ptr, findprop) {
+                       if(RNA_property_type(findprop) == PROP_ENUM) {
+                               prop= findprop;
+                               break;
+                       }
+               }
+               RNA_STRUCT_END;
+       }
+
        if(prop==NULL) {
                printf("WM_menu_invoke: %s has no \"type\" enum property\n", 
op->type->idname);
        }
@@ -464,7 +475,7 @@
        else {
                pup= uiPupMenuBegin(C, op->type->name, 0);
                layout= uiPupMenuLayout(pup);
-               uiItemsEnumO(layout, op->type->idname, "type");
+               uiItemsEnumO(layout, op->type->idname, 
(char*)RNA_property_identifier(prop));
                uiPupMenuEnd(C, pup);
        }
 


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to