diff options
author | Campbell Barton <ideasman42@gmail.com> | 2017-03-14 21:16:07 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2017-03-14 21:37:42 +0300 |
commit | f13c729b26befae8709a8e565a27d6fd31101d44 (patch) | |
tree | 7aed7706549dfb9431b3eb2ce68ab0d637882950 /source/blender/windowmanager/intern/wm.c | |
parent | 647fb6ef1ed36488b1ae13570b7385367e7346c9 (diff) |
WM: free operators when repeating
Needed since the active operator isn't ensured to be the last.
Diffstat (limited to 'source/blender/windowmanager/intern/wm.c')
-rw-r--r-- | source/blender/windowmanager/intern/wm.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/windowmanager/intern/wm.c b/source/blender/windowmanager/intern/wm.c index 8fe38a97dac..4351cd22b18 100644 --- a/source/blender/windowmanager/intern/wm.c +++ b/source/blender/windowmanager/intern/wm.c @@ -107,6 +107,17 @@ void WM_operator_free(wmOperator *op) MEM_freeN(op); } +void WM_operator_free_all_after(wmWindowManager *wm, struct wmOperator *op) +{ + op = op->next; + while (op != NULL) { + wmOperator *op_next = op->next; + BLI_remlink(&wm->operators, op); + WM_operator_free(op); + op = op_next; + } +} + /** * Use with extreme care!, * properties, customdata etc - must be compatible. |