From 52e083fc3f5b2f3d677c09468bd7bce0a1a63ff7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 6 Jul 2013 03:04:48 +0000 Subject: [PATCH] remove dummy menu which WM_OT_context_menu_enum needed, use popup menu directly instead. --- release/scripts/startup/bl_operators/wm.py | 35 ++++++++++------------ 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py index 3919ecdd72f..63d9aa31ddd 100644 --- a/release/scripts/startup/bl_operators/wm.py +++ b/release/scripts/startup/bl_operators/wm.py @@ -471,24 +471,6 @@ class WM_OT_context_cycle_array(Operator): return operator_path_undo_return(context, data_path) -class WM_MT_context_menu_enum(Menu): - bl_label = "" - data_path = "" # BAD DESIGN, set from operator below. - - def draw(self, context): - data_path = self.data_path - value = context_path_validate(context, data_path) - if value is Ellipsis: - return {'PASS_THROUGH'} - base_path, prop_string = data_path.rsplit(".", 1) - value_base = context_path_validate(context, base_path) - prop = value_base.bl_rna.properties[prop_string] - - layout = self.layout - layout.label(prop.name, icon=prop.icon) - layout.prop(value_base, prop_string, expand=True) - - class WM_OT_context_menu_enum(Operator): bl_idname = "wm.context_menu_enum" bl_label = "Context Enum Menu" @@ -497,8 +479,21 @@ class WM_OT_context_menu_enum(Operator): def execute(self, context): data_path = self.data_path - WM_MT_context_menu_enum.data_path = data_path - bpy.ops.wm.call_menu(name="WM_MT_context_menu_enum") + value = context_path_validate(context, data_path) + + if value is Ellipsis: + return {'PASS_THROUGH'} + + base_path, prop_string = data_path.rsplit(".", 1) + value_base = context_path_validate(context, base_path) + prop = value_base.bl_rna.properties[prop_string] + + def draw_cb(self, context): + layout = self.layout + layout.prop(value_base, prop_string, expand=True) + + context.window_manager.popup_menu(draw_func=draw_cb, title=prop.name, icon=prop.icon) + return {'PASS_THROUGH'}