--- src/plugin/kbd_unicode/serv_xlat.c Tue Apr 23 17:32:37 2002 +++ src/plugin/kbd_unicode/serv_xlat.c Thu Apr 25 13:53:46 2002 @@ -361,11 +361,11 @@ } static void init_misc_altgr_map(t_keysym *rule) { - rule[NUM_SPACE] = KEY_SPACE; + init_misc_plain_map(rule); } static void init_misc_shift_altgr_map(t_keysym *rule) { - rule[NUM_SPACE] = KEY_SPACE; + init_misc_shifted_map(rule); } static void init_misc_ctrl_alt_map(t_keysym *rule) { @@ -1134,10 +1134,11 @@ if ((shiftstate & ANY_ALT) && (shiftstate & ANY_CTRL)) { ch = state->rules->map.ctrl_alt[key]; } - else if ((shiftstate & (R_ALT|ALTGR_LOCK)) && (shiftstate & ANY_SHIFT)) { + else if ((shiftstate & ALTGR_LOCK) && (shiftstate & ANY_SHIFT) && + !(shiftstate & (ANY_CTRL | ANY_ALT))) { ch = state->rules->map.shift_altgr[key]; } - else if (shiftstate & (R_ALT|ALTGR_LOCK)) { + else if ((shiftstate & ALTGR_LOCK) && !(shiftstate & (ANY_CTRL | ANY_ALT))) { ch = state->rules->map.altgr[key]; } else if (shiftstate & ANY_ALT) {