<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.apple-style-span
        {mso-style-name:apple-style-span;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I tried in the past overloading things on tcl/tk side of things but that did not work out all that well. In this case, however, it is not practical to do so as the original implementation is inadequate to address the problem at hand and maintaining bunch of workarounds is simply too time consuming to push the project forward at a desired pace.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I think this is pretty much the reason why pd-l2ork exists. Pd-l2ork&#8217;s philosophy is that it will maintain backwards compatibility as long as that does not require maintaining something broken/limited and whose workaround would result in way more overhead than it would to address the third-party libraries that rely on this. In this case it is AFAICT only Gridflow that does this and it has not been updated in quite some time (please correct me if I am wrong).<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>HTH<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Best wishes,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Ico<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Dan Wilcox [mailto:danomatika@gmail.com] <br><b>Sent:</b> Sunday, January 12, 2014 7:19 PM<br><b>To:</b> Jonathan Wilkes; Ivica Ico Bukvic<br><b>Cc:</b> pd-list@iem.at List<br><b>Subject:</b> Re: [PD] error on canvas while writing in object : tcl error: wrong # args: should be &quot;pdtk_canvas_sendkey name state key iso shift&quot;<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>It's not possible to overload the function? aka 1 that takes 5 args and another that takes 7? From what I can tell, the usual style within the pd core has been to add new args to the end so that backwards compatibility isn't sacrificed. Then again, I don't know the details in this case ...<o:p></o:p></p><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>With libpd, so far, we've avoid trying to make any large, incompatible changes to the core. Mainly, at least IMO, because we do not want to end up diverging to the point to where we'll never be able to get said changes upstream. At this point, I'd love to sit down with a bunch of you and work out a proposed roadmap to separating gui &amp; pd core so that libpd could become the standard core between flavors. I haven't delved into the core enough to know if that is a foolish idea, but it really seems like a great idea to standardize some of the functionality ...<o:p></o:p></p><div><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><div><p class=MsoNormal>On Jan 12, 2014, at 5:55 PM, <a href="mailto:pd-list-request@iem.at">pd-list-request@iem.at</a> wrote:<o:p></o:p></p></div><p class=MsoNormal><br><br><o:p></o:p></p><div><p class=MsoNormal><b><span style='font-size:9.0pt;font-family:"Helvetica","sans-serif";color:#7F7F7F'>From:<span class=apple-converted-space>&nbsp;</span></span></b><span style='font-size:9.0pt;font-family:"Helvetica","sans-serif"'>Jonathan Wilkes &lt;<a href="mailto:jancsika@yahoo.com">jancsika@yahoo.com</a>&gt;<o:p></o:p></span></p></div><div><p class=MsoNormal><b><span style='font-size:9.0pt;font-family:"Helvetica","sans-serif";color:#7F7F7F'>Subject:<span class=apple-converted-space>&nbsp;</span></span></b><b><span style='font-size:9.0pt;font-family:"Helvetica","sans-serif"'>Re: [PD] error on canvas while writing in object : tcl error: wrong # args: should be &quot;pdtk_canvas_sendkey name state key iso shift&quot;</span></b><span style='font-size:9.0pt;font-family:"Helvetica","sans-serif"'><o:p></o:p></span></p></div><div><p class=MsoNormal><b><span style='font-size:9.0pt;font-family:"Helvetica","sans-serif";color:#7F7F7F'>Date:<span class=apple-converted-space>&nbsp;</span></span></b><span style='font-size:9.0pt;font-family:"Helvetica","sans-serif"'>January 12, 2014 at 5:54:49 PM EST<o:p></o:p></span></p></div><div><p class=MsoNormal><b><span style='font-size:9.0pt;font-family:"Helvetica","sans-serif";color:#7F7F7F'>To:<span class=apple-converted-space>&nbsp;</span></span></b><span style='font-size:9.0pt;font-family:"Helvetica","sans-serif"'><a href="mailto:pd-list@iem.at">pd-list@iem.at</a><o:p></o:p></span></p></div><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Helvetica","sans-serif"'><br style='orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px'><br></span><o:p></o:p></p><div><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Helvetica","sans-serif"'>On 01/12/2014 10:55 AM, Ivica Ico Bukvic wrote:<o:p></o:p></span></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px'><div><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Helvetica","sans-serif"'>Hi,<br><br>This is because pd-l2ork has recently introduced a way of filtering autorepeat keys so that [key], [keyup], and [keyname] objects only report real key presses (as they should) while other forms of key input (e.g. writing into an object box) still obey the autorepeat. This had to be done in a way that breaks pdtk_canvas_send_key by adding an additional variable and hence library like gridflow that hasn't kept up with pd-l2ork's updates is no longer functioning as it should. Adapting this to pd-l2ork should not take much of an effort--it is just a question of time and who will do it.<o:p></o:p></span></p></div></blockquote><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Helvetica","sans-serif"'><br><span style='background:white'>But notice the error tells the user that the proc expects five args, and not seven args like your revision of pdtk_canvas_sendkey.&nbsp; This is because matju told Gridflow to steal the pdtk_canvas_sendkey proc and renamed it to pdtk_canvas_sendqui (which is pretty funny in itself), and then it sends tcl a brand new pdtk_canvas_sendkey proc with 5 args and code that presumably has to do with unicode support.&nbsp; I say that because you can find it in the Gridflow source file named &quot;unicorn.cxx&quot; (which is also funny in itself).</span><br><br><span style='background:white'>So if you can figure out what it's doing, you can try to merging it into Pd-l2ork or at least make it compatible with it.&nbsp; But there are probably several other places where matju drilled into Pd's walls from the outside, and they probably conflict with Pd-l2ork's renovations.&nbsp; (Probably the widgetbehavior struct and comment struct conflict.)</span><br><br><span style='background:white'>-Jonathan</span></span><o:p></o:p></p></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><div><div><div><p class=MsoNormal><span style='font-family:"Helvetica","sans-serif";color:black'>--------<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-family:"Helvetica","sans-serif";color:black'>Dan Wilcox<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-family:"Helvetica","sans-serif";color:black'>@danomatika<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-family:"Helvetica","sans-serif";color:black'><a href="http://danomatika.com">danomatika.com</a><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-family:"Helvetica","sans-serif";color:black'><a href="http://robotcowboy.com">robotcowboy.com</a><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-family:"Helvetica","sans-serif";color:black'><o:p>&nbsp;</o:p></span></p></div></div><p class=MsoNormal><span style='font-family:"Helvetica","sans-serif";color:black'><o:p>&nbsp;</o:p></span></p></div><p class=MsoNormal style='margin-bottom:12.0pt'><o:p>&nbsp;</o:p></p></div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div></div></div></div></body></html>