"Oleh R. Nykyforchyn" nick@pu.if.ua wrote:
I propose two patches to Wine20050111 (sorry for not using CVS, but I have rather slow dialup connection). First is more or less obvious: current cp_20866.c page includes only Russian KOI8-R codes and is insufficient for Ukrainian and Byelarussian users. It is easy to add four Ukrainian pairs and one Byelarussian pair of letters (in fact, move to KOI8-RU). I patched the Perl script an regenerated cp_20866.c:
You can't do that. Windows has a distinct code page for Ukrainian and Byelarussian, it's 21866.
Second proposal is more complicated. I have four XKB groups in my X.org (Latin + 3 cyrillic encodings), and, moreover, use overlays to switch between Ukrainian and Russian. This approach is typical among Cyrillic Linux users. Of course, wine cannot handle my case, so I partially rewrote keyboard.c to take care of groups and overlays switching if XKB is present. Now You can have four independent layouts up to four shift levels in each. If XKB is absent, wine will behave as before. Driver will switch internal XKB group counter each time when looked up symbol doesn't match previously built tables. If this doesn't help, the whole layout ONLY FOR THIS GROUP (to save time) will be refreshed.
The real fix for your problem is to add a proper support for keyboard layouts, and switch internal x11drv layout on an appropriate X event.