Keyboard layout detection not working??

Dmitry Timoshkov dmitry at baikal.ru
Fri May 31 06:29:34 CDT 2002


"Shachar Shemesh" <wine-devel at sun.consumer.org.il> wrote:

> The problem is that the Hebrew keysyms are at 0x0fe0-0x0ff9.

According to keysymdef.h Hebrew keysyms are in the range 0xcdf - 0xcfa
What says xev when you type hebrew characters?

> They don't 
> pass the condition, and the function tries to convert them using 
> KEYBOARD_MapDeadKeysym, which obviously fails. My first idea was to 
> change this to:
>         if ((keysym < 0x1000) && (keysym != ' '))
> 
> But I then realized that this was probably just a missing 0, and was 
> meant to be:
>         if ((keysym < 0x8000) && (keysym != ' '))

And keysymdef.h confirms your suspicion. I think your fix is correct.

> The second problem I encountered was that keymaps that had three letters 
> per key, but the third letter was wrong, received the same score (i.e. - 
> were not counted as mismatches) as keymaps that only had two letters. In 
> fact, if the X representation had only two letters, the three letter 
> keymaps were not penalized for trying to match a non-existing key. I 
> believe this is not the right behaviour, but as it does not block me at 
> the moment, I did not try to fix it.

Probably keyboard detection code need some additional work. But since
it works for (almost?) all, then it's fine to leave it as it is.

-- 
Dmitry.






More information about the wine-devel mailing list