[Fwd: dead keys treatment using XmbLookupString]
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 ?
> 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