From ab7e9da34299d029eab38e3e4e758ebead0b659e Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Thu, 10 Dec 2009 23:22:43 +0000 Subject: wm_menu_invoke calls exec automatically if property is already set. This way you can set the param in the keymap and it won't always show the menu for nothing. --- source/blender/windowmanager/intern/wm_operators.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 818dcd98afd..6d028a63c1d 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -615,6 +615,9 @@ int WM_menu_invoke(bContext *C, wmOperator *op, wmEvent *event) else if (RNA_property_type(prop) != PROP_ENUM) { printf("WM_menu_invoke: %s \"type\" is not an enum property\n", op->type->idname); } + else if (RNA_property_is_set(op->ptr, RNA_property_identifier(prop))) { + return op->type->exec(C, op); + } else { pup= uiPupMenuBegin(C, op->type->name, 0); layout= uiPupMenuLayout(pup); -- cgit v1.2.3