From 2597377b5cc1c7b16e32a14376a4a07089b6e0e4 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Wed, 29 Sep 2010 11:48:03 +0000 Subject: [PATCH] Fix #24054: Shift+A add menu in Surface editmode shows curve items. --- release/scripts/ui/space_info.py | 15 +++++++++++++++ source/blender/editors/curve/curve_ops.c | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/release/scripts/ui/space_info.py b/release/scripts/ui/space_info.py index a6fe679e716..a98ea4a3219 100644 --- a/release/scripts/ui/space_info.py +++ b/release/scripts/ui/space_info.py @@ -189,6 +189,21 @@ class INFO_MT_curve_add(bpy.types.Menu): layout.operator("curve.primitive_nurbs_circle_add", icon='CURVE_NCIRCLE', text="Nurbs Circle") layout.operator("curve.primitive_nurbs_path_add", icon='CURVE_PATH', text="Path") +class INFO_MT_edit_curve_add(bpy.types.Menu): + bl_idname = "INFO_MT_edit_curve_add" + bl_label = "Add" + + def draw(self, context): + is_surf = context.active_object.type == 'SURFACE' + + layout = self.layout + layout.operator_context = 'INVOKE_REGION_WIN' + + if is_surf: + INFO_MT_surface_add.draw(self, context) + else: + INFO_MT_curve_add.draw(self, context) + class INFO_MT_surface_add(bpy.types.Menu): bl_idname = "INFO_MT_surface_add" diff --git a/source/blender/editors/curve/curve_ops.c b/source/blender/editors/curve/curve_ops.c index 89c19d93b0f..4558827c619 100644 --- a/source/blender/editors/curve/curve_ops.c +++ b/source/blender/editors/curve/curve_ops.c @@ -193,7 +193,7 @@ void ED_keymap_curve(wmKeyConfig *keyconf) keymap= WM_keymap_find(keyconf, "Curve", 0, 0); keymap->poll= ED_operator_editsurfcurve; - WM_keymap_add_menu(keymap, "INFO_MT_curve_add", AKEY, KM_PRESS, KM_SHIFT, 0); + WM_keymap_add_menu(keymap, "INFO_MT_edit_curve_add", AKEY, KM_PRESS, KM_SHIFT, 0); WM_keymap_add_item(keymap, "CURVE_OT_vertex_add", LEFTMOUSE, KM_CLICK, KM_CTRL, 0); WM_keymap_add_item(keymap, "CURVE_OT_select_all", AKEY, KM_PRESS, 0, 0);