From 4b15fcf4970511f021735cbf86acfc28680679ec Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 6 Apr 2011 01:13:01 +0000 Subject: [PATCH] fix [#26801] Undoing Animation modifiers undoes 2 steps. also found grease pencil layer operators were not flagged to use undo. --- source/blender/editors/animation/fmodifier_ui.c | 3 +++ source/blender/editors/gpencil/gpencil_edit.c | 5 +++++ source/tests/CMakeLists.txt | 1 + 3 files changed, 9 insertions(+) diff --git a/source/blender/editors/animation/fmodifier_ui.c b/source/blender/editors/animation/fmodifier_ui.c index 85063be852d..954928fc486 100644 --- a/source/blender/editors/animation/fmodifier_ui.c +++ b/source/blender/editors/animation/fmodifier_ui.c @@ -62,6 +62,7 @@ #include "UI_resources.h" #include "ED_anim_api.h" +#include "ED_util.h" /* ********************************************** */ /* UI STUFF */ @@ -99,6 +100,8 @@ static void delete_fmodifier_cb (bContext *C, void *fmods_v, void *fcm_v) /* remove the given F-Modifier from the active modifier-stack */ remove_fmodifier(modifiers, fcm); + + ED_undo_push(C, "Delete F-Curve Modifier"); /* send notifiers */ // XXX for now, this is the only way to get updates in all the right places... but would be nice to have a special one in this case diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c index 31e0324f0aa..2baefc2de8e 100644 --- a/source/blender/editors/gpencil/gpencil_edit.c +++ b/source/blender/editors/gpencil/gpencil_edit.c @@ -201,6 +201,7 @@ void GPENCIL_OT_data_add (wmOperatorType *ot) ot->name= "Grease Pencil Add New"; ot->idname= "GPENCIL_OT_data_add"; ot->description= "Add new Grease Pencil datablock"; + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* callbacks */ ot->exec= gp_data_add_exec; @@ -248,6 +249,7 @@ void GPENCIL_OT_data_unlink (wmOperatorType *ot) ot->name= "Grease Pencil Unlink"; ot->idname= "GPENCIL_OT_data_unlink"; ot->description= "Unlink active Grease Pencil datablock"; + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* callbacks */ ot->exec= gp_data_unlink_exec; @@ -284,6 +286,7 @@ void GPENCIL_OT_layer_add (wmOperatorType *ot) ot->name= "Add New Layer"; ot->idname= "GPENCIL_OT_layer_add"; ot->description= "Add new Grease Pencil layer for the active Grease Pencil datablock"; + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* callbacks */ ot->exec= gp_layer_add_exec; @@ -334,6 +337,7 @@ void GPENCIL_OT_active_frame_delete (wmOperatorType *ot) ot->name= "Delete Active Frame"; ot->idname= "GPENCIL_OT_active_frame_delete"; ot->description= "Delete the active frame for the active Grease Pencil datablock"; + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* callbacks */ ot->exec= gp_actframe_delete_exec; @@ -599,6 +603,7 @@ void GPENCIL_OT_convert (wmOperatorType *ot) ot->name= "Convert Grease Pencil"; ot->idname= "GPENCIL_OT_convert"; ot->description= "Convert the active Grease Pencil layer to a new Object"; + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* callbacks */ ot->invoke= WM_menu_invoke; diff --git a/source/tests/CMakeLists.txt b/source/tests/CMakeLists.txt index 5dd8883ec8c..5acbf7aa903 100644 --- a/source/tests/CMakeLists.txt +++ b/source/tests/CMakeLists.txt @@ -42,6 +42,7 @@ else() set(TEST_BLENDER_EXE ${EXECUTABLE_OUTPUT_PATH}/blender) endif() +# for testing with valgrind prefix: valgrind --track-origins=yes --error-limit=no set(TEST_BLENDER_EXE ${TEST_BLENDER_EXE} --background --factory-startup --env-system-scripts ${CMAKE_SOURCE_DIR}/release/scripts)