diff --git a/pd/src/g_canvas.c b/pd/src/g_canvas.c index 4f484772fbba28e8c84f68f6692b1054ff49b3b7..f2c717241d750fd33322245a1cd63c4fbd401110 100644 --- a/pd/src/g_canvas.c +++ b/pd/src/g_canvas.c @@ -1926,6 +1926,9 @@ static t_pd *do_create_ab(t_ab_definition *abdef, int argc, t_atom *argv) canvas_popabstraction((t_canvas *)(s__X.s_thing)); canvas_setargs(0, 0); + canvas_vis((t_canvas *)newest, !glist_amreloadingabstractions + && binbuf_getnatom(abdef->ad_source) == 3); + return(newest); } diff --git a/pd/src/g_editor.c b/pd/src/g_editor.c index fb6cf734533ef0fd527f21baf81040b9c9ee1a22..c78cc7b14c0282181bfd0aa2ba9257bf9a0c7c30 100644 --- a/pd/src/g_editor.c +++ b/pd/src/g_editor.c @@ -1426,6 +1426,8 @@ void canvas_reload_ab_rec(t_canvas *x, t_ab_definition *a, t_gobj *e) } glist_select(x, g); } + else if(g == e) + canvas_initbang((t_canvas *)g); g = g->g_next; } if (found) diff --git a/pd/src/g_readwrite.c b/pd/src/g_readwrite.c index 2a37cedf74fd9cf76ff1dd29355d469940cbfcd6..9c591dbf8c1cbae251a7c4ba182964370fb01a04 100644 --- a/pd/src/g_readwrite.c +++ b/pd/src/g_readwrite.c @@ -1011,7 +1011,8 @@ static void canvas_menusaveas(t_canvas *x, t_floatarg fdestroy) x2->gl_name->s_name : "title"), canvas_getdir(x2)->s_name, fdestroy != 0); - else canvas_save_ab(x2, fdestroy); + else if(x->gl_dirty) + canvas_save_ab(x2, fdestroy); } static void canvas_menusave(t_canvas *x, t_floatarg fdestroy) @@ -1026,7 +1027,8 @@ static void canvas_menusave(t_canvas *x, t_floatarg fdestroy) canvas_savetofile(x2, x2->gl_name, canvas_getdir(x2), fdestroy); else canvas_menusaveas(x2, fdestroy); } - else canvas_save_ab(x2, fdestroy); + else if(x->gl_dirty) + canvas_save_ab(x2, fdestroy); } static void canvas_menuprint(t_canvas *x)