From canvas_setgraph in g_canvas.c (with my own comments added): if (glist_isvisible(x) && x->gl_goprect) glist_redraw(x); // This ends with a redraw of the GOP window itself on the parent if (x->gl_owner && !x->gl_loading && glist_isvisible(x->gl_owner)) { gobj_vis(&x->gl_gobj, x->gl_owner, 1); // This draws the GOP window for a second time if the above conditional is met canvas_fixlinesfor(x->gl_owner, &x->gl_obj); }
It's a rather innocuous bug since Pd-Vanilla erases the entire graph the moment you draw or update it. But because tk gives you no tools to inspect the data drawn on a tk canvas, it's extremely difficult to track down bugs like these. (I found it with chromium-devtools, which visually highlights graphical elements when you browse them in the html.)
-Jonathan