João and Jonathon,
Thanks for the information.
If you set the canvas size to 1,1 the subpatch shows up about the same size as the default array canvas size. I done some experimenting with setting gop with pd-pdsubpatch and not donecanvasdialog but the other message with fewer arguments. Couldn't you just send the canvas a message to tell it whether it is a text atom or a graph? I looked through the code for quite a while but could not find how this could be done.
I read somewhere that even if gui elements are not drawn in a subpatch they take use a lot of cpu. Is this true? How much processing goes on for gui elements when not visible?