diff options
Diffstat (limited to 'source/blender/editors/space_view3d/view3d_toolbar.c')
-rw-r--r-- | source/blender/editors/space_view3d/view3d_toolbar.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/source/blender/editors/space_view3d/view3d_toolbar.c b/source/blender/editors/space_view3d/view3d_toolbar.c index a08413293a5..eb292b4bccc 100644 --- a/source/blender/editors/space_view3d/view3d_toolbar.c +++ b/source/blender/editors/space_view3d/view3d_toolbar.c @@ -159,6 +159,19 @@ static void view3d_panel_operator_redo_header(const bContext *C, Panel *pa) else BLI_strncpy(pa->drawname, "Operator", sizeof(pa->drawname)); } +static void view3d_panel_operator_redo_operator(const bContext *C, Panel *pa, wmOperator *op) +{ + if(op->type->flag & OPTYPE_MACRO) { + for(op= op->macro.first; op; op= op->next) { + uiItemL(pa->layout, op->idname, 0); + view3d_panel_operator_redo_operator(C, pa, op); + } + } + else { + view3d_panel_operator_redo_buts(C, pa, op); + } +} + static void view3d_panel_operator_redo(const bContext *C, Panel *pa) { wmOperator *op= view3d_last_operator(C); @@ -173,13 +186,7 @@ static void view3d_panel_operator_redo(const bContext *C, Panel *pa) uiBlockSetFunc(block, redo_cb, op, NULL); - if(op->macro.first) { - for(op= op->macro.first; op; op= op->next) - view3d_panel_operator_redo_buts(C, pa, op); - } - else { - view3d_panel_operator_redo_buts(C, pa, op); - } + view3d_panel_operator_redo_operator(C, pa, op); } /* ******************* */ |