diff --git a/pd/src/g_canvas.c b/pd/src/g_canvas.c index 94807c27a98dd8ec9664f7728160c619d02421ec..004eab33a6f17953a829a782cde0d76d3806201d 100644 --- a/pd/src/g_canvas.c +++ b/pd/src/g_canvas.c @@ -2508,7 +2508,7 @@ static t_symbol *ab_extend_name(t_canvas *x, t_symbol *s) return gensym(res); } -static int abframe = 0; +int abframe = 0; static void canvas_abframe(t_canvas *x, t_float val) { abframe = val; diff --git a/pd/src/g_canvas.h b/pd/src/g_canvas.h index 9d1561421382c5d9e0b76b83b3110853046095f9..8be84e871592f0294e31f4849f6d3a64e23fee2d 100644 --- a/pd/src/g_canvas.h +++ b/pd/src/g_canvas.h @@ -580,6 +580,7 @@ EXTERN void canvas_unsetcurrent(t_canvas *x); EXTERN t_symbol *canvas_realizedollar(t_canvas *x, t_symbol *s); EXTERN t_canvas *canvas_getrootfor(t_canvas *x); EXTERN t_canvas *canvas_getrootfor_ab(t_canvas *x); +EXTERN int abframe; EXTERN void canvas_dirty(t_canvas *x, t_floatarg n); EXTERN int canvas_getfont(t_canvas *x); typedef int (*t_canvasapply)(t_canvas *x, t_int x1, t_int x2, t_int x3); diff --git a/pd/src/x_interface.c b/pd/src/x_interface.c index 80a8c85ad6ffa00528c0f7ab018ee1c1c6b0cb2b..6753ea626236c574d981ccfa9753e4e22a037aae 100644 --- a/pd/src/x_interface.c +++ b/pd/src/x_interface.c @@ -1652,8 +1652,13 @@ void *abinfo_new(void) } else { - error("abinfo: only instantiable inside an ab object"); - x = 0; + if(!abframe) + { + error("abinfo: only instantiable inside an ab object"); + x = 0; + } + else + x = pd_new(text_class); } return (x); }