diff --git a/pd/src/g_canvas.c b/pd/src/g_canvas.c index 671bab3be4fc04adf318d834576ae5a329762c84..abd50f2bcc36ab516656aa2d9a096607759ac4d3 100644 --- a/pd/src/g_canvas.c +++ b/pd/src/g_canvas.c @@ -159,6 +159,13 @@ void glob_setfilename(void *dummy, t_symbol *filesym, t_symbol *dirsym) canvas_newdirectory = dirsym; } +void glob_menunew(void *dummy, t_symbol *filesym, t_symbol *dirsym) +{ + glob_setfilename(dummy, filesym, dirsym); + canvas_new(0, 0, 0, 0); + canvas_pop((t_canvas *)s__X.s_thing, 1); +} + /* set the source for the next canvas, it will be an ab instance */ void canvas_setabsource(t_ab_definition *abdef) { diff --git a/pd/src/m_glob.c b/pd/src/m_glob.c index db3b842cf9959e36dd41d02028bf5c50109a2937..af9f536d4bba4aecabc93b4cb8cd36bea93eb5de 100644 --- a/pd/src/m_glob.c +++ b/pd/src/m_glob.c @@ -18,6 +18,7 @@ int pd_compatibilitylevel = PD_MINOR_VERSION; over. Some others are prototyped in m_imp.h as well. */ void glob_setfilename(void *dummy, t_symbol *filesym, t_symbol *dirsym); +void glob_menunew(void *dummy, t_symbol *name, t_symbol *dir); void glob_verifyquit(void *dummy, t_floatarg f); void glob_dsp(void *dummy, t_symbol *s, int argc, t_atom *argv); void glob_meters(void *dummy, t_floatarg f); @@ -143,6 +144,8 @@ void glob_init(void) CLASS_DEFAULT, A_NULL); class_addmethod(glob_pdobject, (t_method)glob_initfromgui, gensym("init"), A_GIMME, 0); + class_addmethod(glob_pdobject, (t_method)glob_menunew, gensym("menunew"), + A_SYMBOL, A_SYMBOL, 0); class_addmethod(glob_pdobject, (t_method)glob_forward_files_from_secondary_instance, gensym("forward_files_from_secondary_instance"), 0);