<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title></title>
</head>
<body>
Rikki,<br>
<br>
&nbsp;&nbsp;&nbsp; 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&nbsp; 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.<br>
&nbsp;&nbsp;&nbsp; On the original ToUnicode function, it uses the function XLookupString
(a Xlib function) to map scan code-&gt;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.<br>
&nbsp;&nbsp;&nbsp; The dead key treatment is defined on /usr/X11R6/lib/X11/locale.<br>
&nbsp;&nbsp;&nbsp; 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.<br>
&nbsp;&nbsp;&nbsp; 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).<br>
<br>
<br>
Richard Allen wrote:<br>
<blockquote type="cite" cite="mid20030113033701.GA16495@ra.is">
  <pre wrap="">On Wed, Jan 08, 2003 at 12:55:15PM -0200, Mauro Carvalho Chehab wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap=""> Rikki,

   Please try to apply the following patch against the new CVS version 
(on /dlls/x11drv directory). This patch will allow keyboard.c to use 
your locale setting by the usage of xkb extension on X11R6. Please 
notice that this requires that you *don't have* xkbdisable on your 
XF86Config file (or XF86Config-4).
    </pre>
  </blockquote>
  <pre wrap=""><!---->
I applied the patch and did a recompile on todays CVS.   I see a change, but
it does not fix things for Icelandic.   My mute key is:

[ra@morticia ra]$ xmodmap -pke | grep dead_acute
keycode  48 = dead_acute Adiaeresis dead_circumflex dead_caron

Its dead_acute I need to get working.   With your patch it still doesnt 
work, but pressing "alt and the mute key" (dead_circumflex) works.
So I can get characters like &acirc; &ecirc; &ucirc; &icirc; :)

Btw, that key is incorrect from the XFree.org people.  That Adiaeresis is
not supposed to be there and causes wine to complain:

fixme:keyboard:X11DRV_KEYBOARD_DetectLayout Your keyboard layout was not found!
Using closest match instead (Icelandic keyboard layout) for scancode mapping.
Please define your layout in windows/x11drv/keyboard.c and submit them
to us for inclusion into future Wine releases.
See the Wine User Guide, chapter "Keyboard" for more information.


I enabled debugging and its that key thats causing the complaint.  All the
others are right.

So I added the Adiaeresis to the definition for the Icelandic keymap in 
keyboard.c and the complaint went away, but it's still not working :)

  </pre>
</blockquote>
<br>
<br>
</body>
</html>