diff --git a/pd/src/g_canvas.c b/pd/src/g_canvas.c index d81d9110819f3409b7b1db5253593e2a1ef528b2..5f18f75e256ed8d8aeea0dff67adcfb00775b03f 100644 --- a/pd/src/g_canvas.c +++ b/pd/src/g_canvas.c @@ -1023,9 +1023,6 @@ void canvas_free(t_canvas *x) { //fprintf(stderr,"canvas_free %lx\n", (t_int)x); - if(x->gl_dirty) - canvas_dirtyclimb(x, 0); - t_gobj *y; int dspstate = canvas_suspend_dsp(); diff --git a/pd/src/g_graph.c b/pd/src/g_graph.c index 7f806a721942d12811177f6bdba77f15b2e558a6..70c8b04f9ab8e103ec88bfa48cb41fe69e7541b6 100644 --- a/pd/src/g_graph.c +++ b/pd/src/g_graph.c @@ -162,6 +162,9 @@ void glist_delete(t_glist *x, t_gobj *y) /* if we are a group, let's call ourselves a drawcommand */ if (((t_canvas *)y)->gl_svg) drawcommand = 1; + + if(((t_canvas *)y)->gl_dirty) + canvas_dirtyclimb((t_canvas *)y, 0); } wasdeleting = canvas_setdeleting(canvas, 1); diff --git a/pd/src/g_text.c b/pd/src/g_text.c index 6c875164c9ca8ffcaa0423aa8571fc642f4f7a8e..d50b275dbaac6eee4262e437fe7108dd1a980aee 100644 --- a/pd/src/g_text.c +++ b/pd/src/g_text.c @@ -2127,9 +2127,9 @@ static void text_vis(t_gobj *z, t_glist *glist, int vis) if(pd_class(&x->te_pd) == canvas_class) { if (((t_canvas *)x)->gl_dirty) - gobj_dirty(x, glist, 1); + gobj_dirty(&x->te_g, glist, 1); else if (((t_canvas *)x)->gl_subdirties) - gobj_dirty(x, glist, 2); + gobj_dirty(&x->te_g, glist, 2); } } }