diff --git a/externals/pddp/helplink.c b/externals/pddp/helplink.c index 1fe93561e8820216a5b711d2d29a1d7a71206c5e..d8a036f84233d8e1e817f9e4ae440f6415c299e5 100644 --- a/externals/pddp/helplink.c +++ b/externals/pddp/helplink.c @@ -98,18 +98,22 @@ static void helplink_select(t_gobj *z, t_glist *glist, int state) rtext_select(y, state); if (glist_isvisible(glist) && glist->gl_havewindow) { - if (state) { - sys_vgui(".x%lx.c itemconfigure %s -fill $::pd_colors(selection)\n", - glist, rtext_gettag(y)); - sys_vgui(".x%lx.c addtag selected withtag %s\n", - glist, rtext_gettag(y)); - } else { - sys_vgui(".x%lx.c itemconfigure %s -text {%s} -fill #0000dd -activefill #e70000\n", - glist, rtext_gettag(y), x->x_vistext); - sys_vgui("pdtk_canvas_getscroll .x%lx.c\n", (t_int)glist_getcanvas(glist)); - sys_vgui(".x%lx.c dtag %s selected\n", glist, rtext_gettag(y)); - } - } + if (state) { + //sys_vgui(".x%lx.c itemconfigure %s -fill $::pd_colors(selection)\n", + // glist, rtext_gettag(y)); + //sys_vgui(".x%lx.c addtag selected withtag %s\n", + // glist, rtext_gettag(y)); + gui_vmess("gui_gobj_select", "xs", + glist, rtext_gettag(y)); + } else { + //sys_vgui(".x%lx.c itemconfigure %s -text {%s} -fill #0000dd -activefill #e70000\n", + // glist, rtext_gettag(y), x->x_vistext); + //sys_vgui("pdtk_canvas_getscroll .x%lx.c\n", (t_int)glist_getcanvas(glist)); + //sys_vgui(".x%lx.c dtag %s selected\n", glist, rtext_gettag(y)); + gui_vmess("gui_gobj_deselect", "xs", + glist, rtext_gettag(y)); + } + } } static void helplink_activate(t_gobj *z, t_glist *glist, int state) @@ -118,6 +122,13 @@ static void helplink_activate(t_gobj *z, t_glist *glist, int state) t_rtext *y = glist_findrtext(glist, (t_text *)x); rtext_activate(y, state); x->x_rtextactive = state; + if (!state) { + /* Big workaround... see comment in pddplink.c */ + t_binbuf *b = binbuf_new(); + t_binbuf *old = x->x_ob.te_binbuf; + x->x_ob.te_binbuf = b; + binbuf_free(old); + } } static void helplink_vis(t_gobj *z, t_glist *glist, int vis) @@ -129,16 +140,32 @@ static void helplink_vis(t_gobj *z, t_glist *glist, int vis) if ((glist->gl_havewindow || x->x_isgopvisible) && (y = glist_findrtext(glist, (t_text *)x))) { + gui_vmess("gui_text_create_gobj", "xssiii", + glist_getcanvas(glist), + rtext_gettag(y), + "pd_link", + text_xpix(&x->x_ob, glist_getcanvas(glist)), + text_ypix(&x->x_ob, glist_getcanvas(glist)), + glist_istoplevel(glist)); rtext_draw(y); - sys_vgui(".x%lx.c itemconfigure %s -text {%s} -fill #0000dd -activefill #e70000\n", - glist_getcanvas(glist), rtext_gettag(y), x->x_vistext); + gui_vmess("gui_text_set", "xss", + glist_getcanvas(glist), + rtext_gettag(y), + x->x_vistext); + //sys_vgui(".x%lx.c itemconfigure %s -text {%s} -fill #0000dd -activefill #e70000\n", + // glist_getcanvas(glist), rtext_gettag(y), x->x_vistext); } } else { if ((glist->gl_havewindow || x->x_isgopvisible) && (y = glist_findrtext(glist, (t_text *)x))) - rtext_erase(y); + { + //rtext_erase(y); + gui_vmess("gui_gobj_erase", "xs", + glist_getcanvas(glist), + rtext_gettag(y)); + } } }