Change History

I investigated this issue and found that X11DRV_KeyEvent() uses nonchar_key_scan table instead of main_keyboard_type_scans table on 2.1. Howeven even if using keysym, this problem cannot be fixed because the meaning the keysym is bit different between Solaris and Linux as the historical reason. Here is the difference.

Xorg on Solaris

Xorg on Linux

Zenkaku-Hankaku key (AT scan=29)

Henkan_Mode(0xff23)

Zenkaku_Hankaku(0xff2a)

Katakana/Hiragana key (AT scan=70)

Kana_Lock(0xff2d)

Hiragana_Katakana(0xff27)

Henkan key (AT scan=79)

Kanji(0xff21)

Henkan_Mode(0xff23)

Muhenkan key (AT scan=7B)

Execute(0xff62)

Muhenkan(0xff22)

Could you please review attached patch and merge it if it's OK?
Yes, this is MIT-licenced.