OK, release candidate 2 is now up with following changes:
*This one was *really* bad: Cut/Paste/Undo/Redo creates double entries on gop-in-gop patches. Basically, after literally a day of troubleshooting and posting hooks all over the pd source (heck, I even got to study binbuf stuff :-) it appears in these instances window_name never changes upon restore (in other words tcl/tk canvas's documentation lies about not reusing id with every new object--why am I not surprised?) NB: this finally solves every instance I am familiar with in which pd suddenly starts spewing two or more objects per each key-press/action. Consequently, even though I've said it many times before, I finally believe this solves all of the GOP redraw/bug issues.
To best test this problem you can simply create a simple patch using either vanilla pd or pd-extended with a GOP abstraction that has another visible GOP abstraction inside it. Now on the parent window cut and undo (or paste) the GOP-ed abstraction and open it. Try creating a new object inside it and presto, everything is doubled. As you do more cut/undos you can get as many of them per action as you like :-). This can also result in a crash as window close will be also registered multiple times.
If you are wondering how the fix works, it's the ugliest hack on the planet made for the comparably attractive toolkit: every time the undo/copy queue is copied I insert a bogus object prior to the selection (in this case a comment with an appropriately redundant name) and offset all connections by one. Once the buffer is restored, the fact it is different from the original scene (seems to me that the tcl/tk might be caching things id-wise without properly disconnecting HID hooks to those widgets, hence multiple entries per action) forces tcl/tk to assign truly unique ids to newly pasted objects. Upon restoring the queue, I erase the bogus object. Now, how ugly is that?
So, the next time you have an opportunity to read tcl/tk documentation don't forget to take it with a boulder of salt.
Other fixes: *recreation of gop-ed objects when selecting their text (a.k.a. activating them) must not apply to gop-ed pd patchers (when clicked to change their names) *changing name on a gop-ed pd patcher automatically resizes patcher gop window and correctly positions outlets *Added ctrl+enter reselect option *cleaned up stderr errors about canvases/widgets not found *when closing dirty patch and dirty abstraction, prompts are incorrectly focusing on and pointing to wrong windows *cord inspector uses globally defined font size *removed xy stretch option from the font menu as it appears to be unstable *corrected text color on pd patcher
Latest snapshot is available at: http://l2ork.music.vt.edu/main/?page_id=56
As always, feedback is most appreciated.
Cheers!
Ico