Swedish keyboard not recognised

"Göran Uddeborg" <[email protected]> Sat, 15 Jan 2005 00:08:47 +0100
Newsgroups gmane.comp.emulators.winex.devel
Message-ID <[email protected]>
(I first posted this as a support request, but was advised to send it
to this list instead.)

Cedega won't recognise our Swedish keyboard.  And when using some
national keys in various places I get the wrong character.  For
example typing a-diaeresis gives me an a-ring.  I suspect these
problems may be related, so I started investigating why the keyboard
wasn't correctly recognised.

When starting Cedega with some debug messages enabled, I get a message
saying that no keyboard match is found, and a Latin American layout is
used.  (I include the precise output at the end.)

To try to understand why, I checked out the code from
:pserver:[email protected]:/cvsroot and searched.  In
windows/x11drv/keyboard.c I found the relevant function
X11DRV_KEYBOARD_DetectLayout().  By adding trace class to the keyboard
and key channels, I noticed it failed to match several keys when
trying the Swedish keyboard.  In particular, it fails to match those
keys in main_key_SE for which more than two symbols are defined
(keycodes 11, 12, 13, 16, 17, 18, 19, 21, 35, and 94).

The definitions in the table do look correct.  The additional symbols
in the table agree with additional symbols defined for those keys.
Shown for example with "xmodmap -pk".

So I assume there is something wrong in the way keysyms are checked in
the code.  I don't know these X functions very well, so I'm not sure
what the problem is.

In the end, Cedega finds 38 matches and 10 mismatches for the Swedish
layout.

This happens with all Cedega versions I've tried up to and including
4.2.  I haven't had the time to check 4.2.1 yet.  My distribution is
Fedora Core.

Is there something I could do to help debug this?

===========================================
This is from the output from cedega +err ...
I don't know where to find the "Wine User Guide" mentioned in the message.

fixme:keyboard:X11DRV_KEYBOARD_DetectLayout Your keyboard layout was not found!
Using closest match instead (Latin American 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.
trace:keyboard:X11DRV_KEYBOARD_DetectLayout detected layout is "Latin American keyboard layout"