Tk Source Code

Artifact [78157bda]
Login

Artifact 78157bdaddb7d8488e468e9dd81fa0a93a42cc77:

Ticket change [78157bda] - Ticket [6c0d7aec] unicode text input Windows 8 status still Open with 3 other changes by chw 2016-08-29 21:27:04.
D 2016-08-29T21:27:04.371
J icomment The\sfollowing\spatch\sagainst\s[rfe-6c0d7aec67]\sfixes\sTCL_UTF_MAX=6\sand\sseems\sto\swork\swith\sTCL_UTF_MAX=3,\stoo\s(even\sdisplaying\sEmojis\sproperly).\r\n\r\n---\sold/win/tkWinX.c\s\s\s\s2016-08-29\s10:02:57.844491784\s+0200\r\n+++\snew/win/tkWinX.c\s\s\s\s2016-08-29\s21:58:21.505193164\s+0200\r\n@@\s-81,6\s+81,9\s@@\r\n\s\s\s\s\sTkDisplay\s*winDisplay;\s\s\s\s\s/*\sTkDisplay\sstructure\sthat\srepresents\sWindows\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s*\sscreen.\s*/\r\n\s\s\s\s\sint\supdatingClipboard;\s\s\s\s\s/*\sIf\s1,\swe\sare\supdating\sthe\sclipboard.\s*/\r\n+#if\sTCL_UTF_MAX\s>=\s4\r\n+\s\s\s\sint\ssurrogateBuffer;\s\s\s\s\s\s\s/*\sBuffer\sfor\sfirst\sof\ssurrogate\spair.\s*/\r\n+#endif\r\n\s}\sThreadSpecificData;\r\n\sstatic\sTcl_ThreadDataKey\sdataKey;\r\n\s\r\n@@\s-1211,20\s+1214,18\s@@\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\schar\sbuffer[TCL_UTF_MAX+1];\r\n\s\r\n\s#if\sTCL_UTF_MAX\s>=\s4\r\n-\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sif\s((((int)wParam\s&\s0xfc00)\s==\s0xd800)\r\n-\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s&&\s(PeekMessage(&msg,\sNULL,\s0,\s0,\sPM_NOREMOVE)\s!=\s0)\r\n-\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s&&\s(msg.message\s==\sWM_CHAR))\s{\r\n-\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sMSG\smsg;\r\n-\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sint\sch2;\r\n-\r\n-\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sGetMessage(&msg,\sNULL,\s0,\s0);\r\n-\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sch2\s=\swParam\s&\s0xffff;\r\n-\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sch1\s=\s((ch1\s&\s0x3ff)\s<<\s10)\s|\s(ch2\s&\s0x3ff);\r\n-\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sch1\s+=\s0x10000;\r\n-\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sevent.xkey.nbytes\s=\sTcl_UniCharToUtf(ch1,\sbuffer);\r\n-\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\selse\r\n+\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sif\s((ch1\s&\s0xfc00)\s==\s0xd800)\s{\r\n+\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\stsdPtr->surrogateBuffer\s=\sch1;\r\n+\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sreturn;\r\n+\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\r\n+\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sif\s((ch1\s&\s0xfc00)\s==\s0xdc00)\s{\r\n+\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sch1\s=\s((tsdPtr->surrogateBuffer\s&\s0x3ff)\s<<\s10)\s|\r\n+\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s(ch1\s&\s0x3ff);\r\n+\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sch1\s+=\s0x10000;\r\n+\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\stsdPtr->surrogateBuffer\s=\s0;\r\n+\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}\r\n\s#endif\r\n-\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sevent.xkey.nbytes\s=\sTcl_UniCharToUtf(ch1,\sbuffer);\r\n+\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sevent.xkey.nbytes\s=\sTcl_UniCharToUtf(ch1,\sbuffer);\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sfor\s(i=0;\si<event.xkey.nbytes\s&&\si<XMaxTransChars;\s++i)\s{\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\sevent.xkey.trans_chars[i]\s=\sbuffer[i];\r\n\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s}
J login chw
J mimetype text/plain
K 6c0d7aec6713ab6a7c3e12dff7f26bff4679bc9d
U chw
Z ceaed9a6baff80cd1330aa454b8169ae