keyboard errors

Shachar Shemesh wine-devel at sun.consumer.org.il
Fri Oct 11 11:16:55 CDT 2002


  I've had a similar problem. X uses the current locale in order to 
convert the keycode into a character. Try setting you language type to 
Hungarian and then report. If you don't want to set the system locale, 
try the following command (under bash):
LANG=hu wine .......
This will set the language for one application only.

                Shachar


Rizsanyi Zsolt wrote:

>On Wednesday 09 October 2002 14:25, Rizsanyi Zsolt wrote:
>  
>
>>Hi!
>>
>>When running MS Word 97 I get the next error messages when I try to write
>>some of the Hungarian characters. So I'm reporting it as requested in the
>>message :)
>>
>>err:keyboard:X11DRV_ToUnicode Please report: no char for keysym 01F5
>>(odoubleacute) : err:keyboard:X11DRV_ToUnicode
>>(virtKey=DB,scanCode=1A,keycode=22,state=10) err:keyboard:X11DRV_ToUnicode
>>Please report: no char for keysym 01FB (udoubleacute) :
>>err:keyboard:X11DRV_ToUnicode (virtKey=DC,scanCode=2B,keycode=33,state=10)
>>
>>Is it trivial to fix, or there are some problems with it? I would like if
>>that could work... I'm also willing to code it if that is needed :)
>>    
>>
>
>I have investigated it, and the problem is in this code (from 
>dlls/x11drv/keyboard.c):
>
>    else TRACE("Found keycode %d (0x%2X)\n",e.keycode,e.keycode);
>
>    ret = XLookupString(&e, (LPVOID)lpChar, 2, &keysym, NULL);
>    wine_tsx11_unlock();
>
>    if (ret == 0)
>·       {
>·       BYTE dead_char;
>
>·       dead_char = KEYBOARD_MapDeadKeysym(keysym);
>·       if (dead_char)
>·           {
>·           MultiByteToWideChar(main_key_tab[kbd_layout].layout_cp, 0, 
>&dead_char, 1, bufW, bufW_siz
>e);
>·           ret = -1;
>·           }
>·       else
>·           {
>·           char·       *ksname;
>
>·           ksname = TSXKeysymToString(keysym);
>·           if (!ksname)
>·       ·       ksname = "No Name";
>·           if ((keysym >> 8) != 0xff)
>·       ·       {
>·       ·       ERR("Please report: no char for keysym %04lX (%s) :\n",
>                    keysym, ksname);
>·       ·       ERR("(virtKey=%X,scanCode=%X,keycode=%X,state=%X)\n",
>                    virtKey, scanCode, e.keycode, e.state);
>·       ·       }
>·           }
>·       }
>
>The problems come from that the XLookupString is used to convert the keycode 
>to the display string. It does properly display that the pressed key is 
>odoubleacute, but because XLookupString works only for Latin1 characters, so 
>the string representation is not returned.
>
>I dont see how this situation should be handled.
>Maybe another X function should be used instead of XLookupString (one which 
>works with chars other than Latin1).
>
>I'm not too good in X programming so please HELP!!
>
>Thanks
>Zsolt
>
>
>  
>







More information about the wine-devel mailing list