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