diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-05-06 10:02:47 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-05-06 10:02:47 +0300 |
commit | 4163beb818fc743e5b0e1388fece488156027555 (patch) | |
tree | f2f229c58d473d555825fdcc152e9d7a3a229832 /source/blender/windowmanager | |
parent | f4e9620effaf40597967a0e5b82d4a4dd803c5ef (diff) | |
parent | 632f2b5c18310760f61f7a998ff972cde0ac49d6 (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 6e75260c466..f0bd033f033 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -1186,11 +1186,22 @@ bool WM_operator_last_properties_store(wmOperator *op) if (op->properties) { CLOG_INFO(WM_LOG_OPERATORS, 1, "storing properties for '%s'", op->type->idname); op->type->last_properties = IDP_CopyProperty(op->properties); - return true; } - else { - return false; + + if (op->macro.first != NULL) { + for (wmOperator *opm = op->macro.first; opm; opm = opm->next) { + if (opm->properties) { + if (op->type->last_properties == NULL) { + op->type->last_properties = IDP_New(IDP_GROUP, &(IDPropertyTemplate){0}, "wmOperatorProperties"); + } + IDProperty *idp_macro = IDP_CopyProperty(opm->properties); + STRNCPY(idp_macro->name, opm->idname); + IDP_ReplaceInGroup(op->type->last_properties, idp_macro); + } + } } + + return (op->type->last_properties != NULL); } #else |