diff --git a/pd/src/g_array.c b/pd/src/g_array.c index c2fe7a8942d5815d901a7f58da2c9b75964bcb5a..548054b64de745d17812d08460d1382bbe62f597 100644 --- a/pd/src/g_array.c +++ b/pd/src/g_array.c @@ -66,6 +66,7 @@ void garray_arrayviewlist_close(t_garray *x); void array_resize(t_array *x, int n) { + //fprintf(stderr,"array_resize\n"); int elemsize, oldn; t_gpointer *gp; t_template *template = template_findbyname(x->a_templatesym); @@ -91,6 +92,7 @@ void array_resize(t_array *x, int n) static void array_resize_and_redraw(t_array *array, t_glist *glist, int n) { + //fprintf(stderr,"array_resize_and_redraw\n"); t_array *a2 = array; int vis = glist_isvisible(glist); while (a2->a_gp.gp_stub->gs_which == GP_ARRAY) @@ -264,6 +266,7 @@ int garray_getname(t_garray *x, t_symbol **namep) to fit a new size and style for the garray */ void garray_fittograph(t_garray *x, int n) { + //fprintf(stderr,"garray_fittoraph %d\n", n); t_array *array = garray_getarray(x); t_glist *gl = x->x_glist; if (gl->gl_list == &x->x_gobj && !x->x_gobj.g_next) @@ -910,18 +913,23 @@ int array_doclick(t_array *array, t_glist *glist, t_scalar *sc, t_array *ap, memmove((char *)(array->a_vec) + elemsize * i, (char *)(array->a_vec) + elemsize * (i+1), (array->a_n - 1 - i) * elemsize); - array_resize_and_redraw(array, glist, array->a_n - 1); + //array_resize_and_redraw(array, glist, array->a_n - 1); + garray_resize(array_garray, array->a_n - 1); + canvas_setcursor(glist_getcanvas(glist), 0); return (0); } else if (alt) { /* add a point (after the clicked-on one) */ - array_resize_and_redraw(array, glist, array->a_n + 1); + //fprintf(stderr,"add a point\n"); + //array_resize_and_redraw(array, glist, array->a_n + 1); elem = (char *)array->a_vec; memmove(elem + elemsize * (i+1), elem + elemsize * i, (array->a_n - i - 1) * elemsize); i++; + garray_resize(array_garray, array->a_n + 1); + canvas_setcursor(glist_getcanvas(glist), 0); } if (xonset >= 0) {