Ignore:
Timestamp:
Dec 21, 2010, 1:40:08 AM (15 years ago)
Author:
dmik
Message:

Fixed completely broken national (non-Latin1) character input in Odin. There were two problems:
1) When translating OS2 WM_CHAR to Win32 WM_CHAR in UNICODE mode, ANSI->UNICODE conversion of the character was not done.
2) When hosting windows on threads created with CreateThread(), characters in WM_CHAR were wrongly converted from OS/2 codepage to ANSI codepage while they already were in ANSI due to the message queue begin switched to it at thread startup.
3) The main thread's message queue is now also switched to ANSI at startup so the conversion from step 2) should normally not take place now.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/thread.cpp

    r21308 r21529  
    687687    winteb->o.odin.hmq = OSLibWinQueryMsgQueue(winteb->o.odin.hab);
    688688    rc = OSLibWinSetCp(winteb->o.odin.hmq, GetDisplayCodepage());
    689     dprintf(("WinSetCP was %sOK", rc ? "" : "not "));
     689    dprintf(("WinSetCP(%d) was %sOK", GetDisplayCodepage(), rc ? "" : "not "));
    690690    hookInit(winteb->o.odin.hab);
    691691
Note: See TracChangeset for help on using the changeset viewer.