diff options
author | Egbert Eich <eich@suse.de> | 2014-01-03 11:48:11 +0100 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2014-02-11 08:04:31 +1000 |
commit | 5a327955c9287a317e5792e96601375fa5aabced (patch) | |
tree | 82d19353c781bb4c50305a431beb6d8fc6ec64c6 /src/atKeynames.h | |
parent | ddeb7940b956682451392717b135be4454b5756e (diff) | |
download | xorg-driver-xf86-input-keyboard-5a327955c9287a317e5792e96601375fa5aabced.tar.gz |
Detangle inet keys and jp Henkan/ Muhenkan keys
When support for inet keys was added to the keyboard driver
back in the early 2000 none of the developers thought of
Japanese 106 key keybards which have two extra keys generating
the scan codes 0x79 and 0x7d.
So for keys prefixed with the scan code 0x60 which were not
remapped to anything else the line:
*scanCode += 0x78;
was added.
Thus keys generating the scan codes 0xe0 0x01 and 0xe0 0x03
will overlap with the Henkan and Muhenkan keys on Japanese
keyboards.
A workaround was introduced to xkeyboard-config which makes
sure the keycodes 0x79 and 0x7d provide the Henkan and Muhenkan
keysyms. As a consequence users might loose some multimedia keys
on Japanese keyboards.
A different solution would be to either remap keycodes 0x79
and 0x7d or keycodes 0xe0 0x01 and 0xe0 0x03 into the range of
unused (X-)keycodes above 0xfb.
There are downsides with either solution: the legacy keyboard
driver and the xkb files would have to be fixed in sync. Otherwise
Japanese users would loose their Henkan and Muhenkan keys (in
the first case) or some multimedia keys would get lost.
The present patch does the latter which seems to be cleaner codewise.
Signed-off-by: Egbert Eich <eich@suse.de>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'src/atKeynames.h')
-rw-r--r-- | src/atKeynames.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/atKeynames.h b/src/atKeynames.h index 85f13ac..d114753 100644 --- a/src/atKeynames.h +++ b/src/atKeynames.h @@ -287,6 +287,8 @@ #define KEY_0x74 0xD3 #define KEY_0x75 0xD4 #define KEY_0x76 0xD5 +#define KEY_R_0xF4 0xF4 +#define KEY_R_0xF5 0xF5 /* These are for "notused" and "unknown" entries in translation maps. */ #define KEY_NOTUSED 0 |