[Bug 11281] CJK input: cannot type in legacy applications

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Apr 25 21:09:19 CDT 2009


http://bugs.winehq.org/show_bug.cgi?id=11281


Paul "TBBle" Hampson <Paul.Hampson at Pobox.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |Paul.Hampson at Pobox.com




--- Comment #17 from Paul "TBBle" Hampson <Paul.Hampson at Pobox.com>  2009-04-25 21:09:19 ---
This problem has nothing to do with bug 18044. Bug 18044 would only apply if
the application was using MS Shell Dlg as the font for the edit box.

The test application in attachment 10369 and attachment 10370 is is sending
SJIS text to WM_SETTEXT, which seems to work for me with LC_CTYPE=ja_JP.ut8
wine testwin.exe but not with plain wine testwin.exe.

The definition of WM_SETTEXT takes a TCHAR*, which is ASCII in ASCII builds and
UCS-2 in Unicode builds.

To see what's going wrong in the test app, run it with WINEDEBUG=+font and
search for GetTextExtentExPointW in the (huge) output. Under en_AU.utf8, I see

trace:font:GetTextExtentExPointW (0x1d8, L"Edit
\201a\00a0\201a\00a2\201a\00a4\201a\00a6\201a\00a8", 0)

while under ja_JP.utf8 I see

trace:font:GetTextExtentExPointW (0x1d8, L"Edit \3042\3044\3046\3048\304a", 0)

As you can see, it's getting mangled quite badly before it tries to process it
in the font code.

Anyway, getting correct font display for the test app (which uses the System
font which pulls glyphs from Tahoma and its FontLinks under Wine) is simply a
matter of having the correct FontLinks/SystemLinks entries for Tahoma (see bug
10864 comment 4 for an example, can be done through regedit as a REG_MULTI_SZ)
and then the starting text will appear with LC_CTYPE=ja_JP.utf8, and pasting
works (at least for me) under both locales.


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list