diff options
author | Martin Poirier <theeth@yahoo.com> | 2009-12-11 02:22:43 +0300 |
---|---|---|
committer | Martin Poirier <theeth@yahoo.com> | 2009-12-11 02:22:43 +0300 |
commit | ab7e9da34299d029eab38e3e4e758ebead0b659e (patch) | |
tree | 053c3b43853549717e4e2de034bd165196be0461 | |
parent | 97abf6ad96932ae5d1a3e6b6d89e271f11e9cd8a (diff) |
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.
-rw-r--r-- | source/blender/windowmanager/intern/wm_operators.c | 3 |
1 files changed, 3 insertions, 0 deletions
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); |