From 341737388e8c6b380fb6d44bbd2912e06d2d5f1b Mon Sep 17 00:00:00 2001 From: Ivica Ico Bukvic <ico@vt.edu> Date: Fri, 3 Aug 2012 22:01:56 -0400 Subject: [PATCH] added dsp_suspend to undo actions to improve stability --- src/g_undo.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/g_undo.c b/src/g_undo.c index dadde7413..a3740ee47 100644 --- a/src/g_undo.c +++ b/src/g_undo.c @@ -53,6 +53,7 @@ t_undo_action *canvas_undo_add(t_canvas *x, int type, const char *name, void *da void canvas_undo_undo(t_canvas *x) { + int dspwas = canvas_suspend_dsp(); if (x->u_queue && x->u_last != x->u_queue) { we_are_undoing = 1; //fprintf(stderr,"canvas_undo_undo %d\n", x->u_last->type); @@ -86,10 +87,12 @@ void canvas_undo_undo(t_canvas *x) sys_vgui("pdtk_canvas_getscroll .x%lx.c\n", x); } } + canvas_resume_dsp(dspwas); } void canvas_undo_redo(t_canvas *x) { + int dspwas = canvas_suspend_dsp(); if (x->u_queue && x->u_last->next) { we_are_undoing = 1; x->u_last = x->u_last->next; @@ -123,10 +126,12 @@ void canvas_undo_redo(t_canvas *x) sys_vgui("pdtk_canvas_getscroll .x%lx.c\n", x); } } + canvas_resume_dsp(dspwas); } void canvas_undo_rebranch(t_canvas *x) { + int dspwas = canvas_suspend_dsp(); t_undo_action *a1, *a2; //fprintf(stderr,"canvas_undo_rebranch"); if (x->u_last->next) { @@ -154,6 +159,7 @@ void canvas_undo_rebranch(t_canvas *x) a1 = a2; } } + canvas_resume_dsp(dspwas); //fprintf(stderr,"done!\n"); } @@ -169,6 +175,7 @@ void canvas_undo_purge_abstraction_actions(t_canvas *x) void canvas_undo_free(t_canvas *x) { + int dspwas = canvas_suspend_dsp(); t_undo_action *a1, *a2; //fprintf(stderr,"canvas_undo_free"); if (x->u_queue) { @@ -197,6 +204,7 @@ void canvas_undo_free(t_canvas *x) a1 = a2; } } + canvas_resume_dsp(dspwas); //fprintf(stderr,"done!\n"); } -- GitLab