Keyboard layout detection not working??
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.
More information about the wine-devel