Comment 4 for bug 30848

Revision history for this message
nahs (nahs777) wrote : Re: [Bug 30848] Korean/latin key(Hangul key) doesn't work.

it wasn't a problem of kernels. xserver-xorg-input-keyboard was the problem.

I compare it with gentoo source and that's the results.

input-keyboard-1.0.1.3/src/kbd.c kbd.c -Nur
--- ../../../xserver-xorg-input-keyboard-1.0.1.3/src/kbd.c 2006-03-11
17:55:31.000000000 +0900
+++ kbd.c 2005-11-10 06:31:23.000000000 +0900
@@ -770,7 +770,7 @@
   /*
    * check for an autorepeat-event
    */
- if (down && KeyPressed(keycode) && keycode < 146) {
+ if (down && KeyPressed(keycode)) {
       int num = keycode >> 3;
       int bit = 1 << (keycode & 7);

@@ -783,25 +783,11 @@
    if (UsePrefix) {
       xf86PostKeyboardEvent(device,
               keyc->modifierKeyMap[keyc->maxKeysPerModifier*7], TRUE);
- if (keycode < 146) {
- xf86PostKeyboardEvent(device, keycode, down);
- } else if (down) {
- /* If it's a key down event, send a down and up. Otherwise
- drop it */
- xf86PostKeyboardEvent(device, keycode, TRUE);
- xf86PostKeyboardEvent(device, keycode, FALSE);
- }
+ xf86PostKeyboardEvent(device, keycode, down);
       xf86PostKeyboardEvent(device,
               keyc->modifierKeyMap[keyc->maxKeysPerModifier*7], FALSE);
    } else {
- if (keycode < 146) {
- xf86PostKeyboardEvent(device, keycode, down);
- } else if (down) {
- /* If it's a key down event, send a down and up.
Otherwise
- drop it */
- xf86PostKeyboardEvent(device, keycode, TRUE);
- xf86PostKeyboardEvent(device, keycode, FALSE);
- }
+ xf86PostKeyboardEvent(device, keycode, down);
    }
 }

in ubuntu source there are some exception over 146 keycodes.
 hangul / Eng key is keycodes 210. so excption make hangul key doens't work.