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 /source | |
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.
Diffstat (limited to 'source')
-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); |