[PD-dev] pd vanilla/extended bug

Ivica Ico Bukvic ico at vt.edu
Thu Nov 19 21:31:39 CET 2009


All right. So, I've done some digging on this one and found out the
following:

The bug affects all versions of Pd and behaves even worse in 0.43
extended. Given that Pd is all about abstracting one's work, I would
consider this a high-priority bug.

Basically it has to do with having a GOP-enabled sub-patch that has
another GOP-enabled sub-patch visible within its parent GOP.

Problems:
1) when turning off GOP on the parent subpatch through which you can see
child GOP-enabled sub-patch, after applying settings, the parent
sub-patch converts to a regular object but clicking on it does nothing
and results in console errors like this:

bad window path name ".x9e91188"
bad window path name ".x9e91188.c"
bad window path name ".x9e91188"
bad window path name ".x9e91188"
bad window path name ".x9e91188.c"
bad window path name ".x9e91188"

Doing the same while the child sub-patch is visible has no negative
effect. See below patch for example (open [pd test] sub-patch and
disable GOP in the pd parent-tester or whatever its name) and then try
opening it.

2) when the same happens, there are sometimes stray objects left that
were previously visible through GOP rectangle. they cannot be interacted
with and are just leftover graphics. This is the case with both vanilla
and pd-extended.

3) the problem also exists if you want to change the number on the main
patch (provided below) that sends data to tester-child. This will result
in similar errors on the console. This one affects only pd-extended and
the offending line is in g_editor.c function gobj_shouldvis (around line
84):

sys_vgui(".x%lx.c raise all_cords\n", glist_getcanvas(glist));

This should be commented out as it is not present in vanilla version and
is causing the problem I described in my earlier email.


Please see patch below:

#N canvas 265 330 294 205 10;
#X obj 115 76 s test;
#N canvas 696 341 288 186 tester 0;
#N canvas 16 267 440 290 tester-parent 0;
#N canvas 5 125 450 300 tester-child 0;
#X obj 113 29 r test;
#X floatatom 124 117 5 0 0 0 - - -;
#X msg 130 60 set \$1;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X coords 0 -1 1 1 85 60 1 100 100;
#X restore 132 112 pd tester-child;
#X coords 0 -1 1 1 150 90 1 100 100;
#X restore 67 58 pd tester-parent;
#X coords 0 0 1 1 300 80 0;
#X restore 108 112 pd tester;
#X floatatom 113 41 5 0 0 0 - - -;
#X connect 2 0 0 0;

Any ideas how to tackle this one? Seems like a real pickle to me...

Ico





More information about the Pd-dev mailing list