diff --git a/pd/src/g_all_guis.c b/pd/src/g_all_guis.c index 84748f1d840e1117d563ae93816de0f3d599488c..4c0c6591b97c9bd00a98c0bf7c064edbcebda05b 100644 --- a/pd/src/g_all_guis.c +++ b/pd/src/g_all_guis.c @@ -231,19 +231,15 @@ void iemgui_receive(t_iemgui *x, t_symbol *s) void iemgui_label(t_iemgui *x, t_symbol *s) { + t_symbol *old; if (s == &s_) s = s_empty; //tb: fix for empty label + old = x->x_lab; t_symbol *lab = iemgui_raute2dollar(s); x->x_lab_unexpanded = lab; x->x_lab = lab = canvas_realizedollar(x->x_glist, lab); - if(glist_isvisible(x->x_glist)) - { - gui_vmess("gui_iemgui_label_set", "xxs", - glist_getcanvas(x->x_glist), - x, - s != s_empty ? x->x_lab->s_name : ""); + if (glist_isvisible(x->x_glist) && lab != old) iemgui_shouldvis(x, IEM_GUI_DRAW_MODE_CONFIG); - } } void iemgui_label_pos(t_iemgui *x, t_symbol *s, int ac, t_atom *av) diff --git a/pd/src/g_editor.c b/pd/src/g_editor.c index abea628172d14a05e7690a1065069106540dd0da..f759c428c30ce7250aa2cd55bfcc9946fdf98489 100644 --- a/pd/src/g_editor.c +++ b/pd/src/g_editor.c @@ -220,6 +220,13 @@ int gobj_shouldvis(t_gobj *x, struct _glist *glist) //fprintf(stderr,"shouldvis %d %d %d %d\n", // glist->gl_havewindow, glist->gl_isgraph, // glist->gl_goprect, glist->gl_owner != NULL); + /* if our parent is a graph, and if that graph itself isn't + visible, then we aren't either. */ + if (!glist->gl_havewindow && glist->gl_isgraph && glist->gl_owner + && !gobj_shouldvis(&glist->gl_gobj, glist->gl_owner)) + return (0); + /* if we're graphing-on-parent and the object falls outside the + graph rectangle, don't draw it. */ if (!glist->gl_havewindow && glist->gl_isgraph && glist->gl_goprect && glist->gl_owner && (pd_class(&x->g_pd) != scalar_class) && (pd_class(&x->g_pd) != garray_class)) @@ -2880,7 +2887,7 @@ static void canvas_donecanvasdialog(t_glist *x, { glist_noselect(x); gobj_vis(&x->gl_gobj, x->gl_owner, 0); - if (gobj_shouldvis(&x->gl_obj, x->gl_owner)) + if (gobj_shouldvis(&x->gl_gobj, x->gl_owner)) { gobj_vis(&x->gl_gobj, x->gl_owner, 1); //fprintf(stderr,"yes\n");