[Fwd: dead keys treatment using XmbLookupString]

Richard Allen ra at ra.is
Wed Jan 15 08:19:36 CST 2003


On Mon, Jan 13, 2003 at 12:07:10PM -0200, Mauro Carvalho Chehab wrote:

I've been studying this quite a bit.  With this patch, I've verifyed that
some of the dead keys work, and some not.   If I change the IS keymap
so Im using dead_circumflex instead of dead_acute, then dead (accented)
characters do work, but obviously not the right ones.
This leads me to think that dead_acute characters are handled differently
by wine than dead_circumflex characters are.

Mauro, do you think I could be on to something here ?



> Rikki,
> 
>    As far as I know, wine keyboard.c uses XFree86 Keymap table to 
> compare your key definitions with their internal geometry. After that, 
> it maps every scan code to a virtual key. The virtual key  is mapped 
> back to a scan code and to an unicode symbol by ToUnicode function. 
> During this proccess, it uses part of the original xfree mapping.
>    On the original ToUnicode function, it uses the function 
> XLookupString (a Xlib function) to map scan code->symbol. This function 
> is capable to work with latin characters, but it doesn't implement dead 
> keys translation on the current XFree86 implementations. In the past, 
> there was some Xlib hacking that changes this behavor (X11 R5 
> implementations). The new standard (X11 R6) creates the xkb extensions, 
> that provides new functions to treat locale imput data (XmbLookupString, 
> Xutf8LookupString and XwcLookupString). What it does is to use XFree86 
> locale settings to make this map.
>    The dead key treatment is defined on /usr/X11R6/lib/X11/locale.
>    The geometry of their keyboards, used by xkb, are on 
> /usr/X11R6/lib/X11/xkb (RedHat) or /etc/X11/xkb (Mandrake). The file 
> symbols/is, for example, contains some icelandic definitions.
>    From your answer, I would try to fix the XFree86 keyboard mapping on 
> symbols/is. I guess that this will solve both XFree and Wine (patched).

-- 
Rikki.         --  RHCE, RHCX, HP-UX Certified Administrator.
               --  Solaris 7 Certified Systems and Network Administrator.
Bell Labs Unix --  Reach out and grep someone.
Those who do not understand Unix are condemned to reinvent it, poorly.



More information about the wine-devel mailing list