From 6d088345e73020a1528125e22789a58b200178f4 Mon Sep 17 00:00:00 2001 From: Ivica Ico Bukvic <ico@vt.edu> Date: Wed, 5 Dec 2012 14:28:09 -0500 Subject: [PATCH] minor refinements to the autopatch and noautopatch system. --- pd/src/g_editor.c | 2 +- pd/src/g_text.c | 27 +++++++++++++++------------ 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/pd/src/g_editor.c b/pd/src/g_editor.c index 9bb010eb0..63ee59929 100644 --- a/pd/src/g_editor.c +++ b/pd/src/g_editor.c @@ -4486,7 +4486,7 @@ static void canvas_dopaste(t_canvas *x, t_binbuf *b) //fprintf(stderr,"dopaste autopatching? %d==%d %d\n", count, nbox, connectme); //if we are pasting only one object autoposition it below our selection - if (count == nbox+1 && connectme) { + if (count == nbox+1 && connectme == 1) { canvas_connect(x, indx, 0, nobj, 0); //is this universally safe? I think so diff --git a/pd/src/g_text.c b/pd/src/g_text.c index c12eaeba5..c2451f02d 100644 --- a/pd/src/g_text.c +++ b/pd/src/g_text.c @@ -90,7 +90,7 @@ void glist_text(t_glist *gl, t_symbol *s, int argc, t_atom *argv) if (!we_are_undoing) canvas_undo_add(glist_getcanvas(gl), 9, "create", (void *)canvas_undo_set_create(glist_getcanvas(gl))); - canvas_startmotion(glist_getcanvas(gl)); + if (connectme == 0) canvas_startmotion(glist_getcanvas(gl)); } } @@ -242,7 +242,10 @@ void canvas_howputnew(t_canvas *x, int *connectp, int *xpixp, int *ypixp, glist_getnextxy(x, xpixp, ypixp); glist_noselect(x); } - if (sys_noautopatch) connectme = 0; + if (sys_noautopatch) { + if (connectme == 1) connectme = -1; + else connectme = 0; + } *connectp = connectme; *indexp = indx; *totalp = nobj; @@ -276,13 +279,13 @@ void canvas_obj(t_glist *gl, t_symbol *s, int argc, t_atom *argv) canvas_howputnew(gl, &connectme, &xpix, &ypix, &indx, &nobj); pd_vmess(&gl->gl_pd, gensym("editmode"), "i", 1); canvas_objtext(gl, xpix, ypix, 1, b); - if (connectme) { + if (connectme == 1) { //fprintf(stderr,"canvas_obj calls canvas_connect\n"); connect_exception = 1; canvas_connect(gl, indx, 0, nobj, 0); connect_exception = 0; } - else { + else if (connectme == 0) { //fprintf(stderr,"canvas_obj calls canvas_startmotion\n"); canvas_startmotion(glist_getcanvas(gl)); } @@ -320,10 +323,10 @@ void canvas_obj_abstraction_from_menu(t_glist *gl, t_symbol *s, int argc, t_atom y = y->g_next; canvas_loadbang((t_canvas *)y); - if (connectme) { + if (connectme == 1) { canvas_connect(gl, indx, 0, nobj, 0); } - else { + else if (connectme == 0) { canvas_startmotion(glist_getcanvas(gl)); } canvas_undo_add(glist_getcanvas(gl), 9, "create", @@ -364,11 +367,11 @@ void canvas_iemguis(t_glist *gl, t_symbol *guiobjname) SETSYMBOL(&at, guiobjname); binbuf_restore(b, 1, &at); canvas_objtext(gl, xpix, ypix, 1, b); - if (connectme) + if (connectme == 1) canvas_connect(gl, indx, 0, nobj, 0); //glist_getnextxy(gl, &xpix, &ypix); //canvas_objtext(gl, xpix, ypix, 1, b); - else canvas_startmotion(glist_getcanvas(gl)); + else if (connectme == 0 ) canvas_startmotion(glist_getcanvas(gl)); //canvas_setundo(glist_getcanvas(gl), canvas_undo_create, canvas_undo_set_create(gl), "create"); canvas_undo_add(glist_getcanvas(gl), 9, "create", (void *)canvas_undo_set_create(glist_getcanvas(gl))); @@ -640,9 +643,9 @@ void canvas_msg(t_glist *gl, t_symbol *s, int argc, t_atom *argv) glist_noselect(gl); glist_select(gl, &x->m_text.te_g); gobj_activate(&x->m_text.te_g, gl, 1); - if (connectme) + if (connectme == 1) canvas_connect(gl, indx, 0, nobj, 0); - else canvas_startmotion(glist_getcanvas(gl)); + else if (connectme == 0) canvas_startmotion(glist_getcanvas(gl)); //canvas_setundo(glist_getcanvas(gl), canvas_undo_create, canvas_undo_set_create(gl), "create"); canvas_undo_add(glist_getcanvas(gl), 9, "create", (void *)canvas_undo_set_create(glist_getcanvas(gl))); @@ -1110,9 +1113,9 @@ void canvas_atom(t_glist *gl, t_atomtype type, glist_add(gl, &x->a_text.te_g); glist_noselect(gl); glist_select(gl, &x->a_text.te_g); - if (connectme) + if (connectme == 1) canvas_connect(gl, indx, 0, nobj, 0); - else canvas_startmotion(glist_getcanvas(gl)); + else if (connectme == 0) canvas_startmotion(glist_getcanvas(gl)); //canvas_setundo(glist_getcanvas(gl), canvas_undo_create, canvas_undo_set_create(gl), "create"); canvas_undo_add(glist_getcanvas(gl), 9, "create", (void *)canvas_undo_set_create(glist_getcanvas(gl))); -- GitLab