diff --git a/pd/src/g_array.c b/pd/src/g_array.c index 0fb868ff61f109c038efcac2dd9e548c466f9683..530b360ee7508a8a80fa1481986e542ca4cfef85 100644 --- a/pd/src/g_array.c +++ b/pd/src/g_array.c @@ -417,20 +417,26 @@ extern void canvas_apply_setundo(t_canvas *x, t_gobj *y); void garray_arraydialog(t_garray *x, t_symbol *name, t_floatarg fsize, t_floatarg fflags, t_floatarg deleteit) { - canvas_apply_setundo(glist_getcanvas(x->x_glist), (t_gobj *)x); - - int flags = fflags; - int saveit = ((flags & 1) != 0); - int style = ((flags & 6) >> 1); - /*t_float stylewas = template_getfloat( - template_findbyname(x->x_scalar->sc_template), - gensym("style"), x->x_scalar->sc_vec, 1);*/ if (deleteit != 0) { + //fprintf(stderr,"deleteit\n"); + //glist_select(x->x_glist, &x->x_gobj); + //canvas_undo_add(x->x_glist, 3, "delete", canvas_undo_set_cut(x->x_glist, 2)); // 2 = UCUT_CLEAR (from g_editor.c) + //currently cannot be undo'd until we do a new kind of undo + int dspwas = canvas_suspend_dsp(); glist_delete(x->x_glist, &x->x_gobj); + canvas_resume_dsp(dspwas); } - else - { + else + { + canvas_apply_setundo(glist_getcanvas(x->x_glist), (t_gobj *)x); + + int flags = fflags; + int saveit = ((flags & 1) != 0); + int style = ((flags & 6) >> 1); + /*t_float stylewas = template_getfloat( + template_findbyname(x->x_scalar->sc_template), + gensym("style"), x->x_scalar->sc_vec, 1);*/ int size; int styleonset, styletype; t_symbol *stylearraytype;