単純なテストをしてみました。@同時打鍵ミス問題

 すべて、Toshiba/DynabookC8/213LMEWに限っての話だと思われますので、その点誤解無きようにご注意下さい。


 3キー同時打鍵時に、理想通りのタイミングでキーコードが発行されない例:「変換(窓使いの憂鬱における私製配列定義ではM2として設定)・D・S」の3キー同時打鍵。


 同時打鍵をすると、まず3キー中2キーまでのキーコードはその場で送出される。
 3番目に押したキーのキーコードは出力待ちを喰らう状態となる。
 3キーのうちいずれかを離した時点で、まず離したキーの「キー離す」コードが送る出され、それに続いてすぐに3番目に押したキーの「キー押す」コードが送出される。

 以下の例については、変換キー離す(変換↑)のタイミングを少しずつ早めた場合の状況を「窓使いの憂鬱」にて調べました。
 (調べた…ってゆーほど大げさではないですな)


 「変換(M2)↓・D↓・S↓・D↑・S↑・変換↑:なお」
0x79 D-変換 変換キー押す
0x1f D-M2-D Dキー押す
0xff      Sキー押す(0xff…何ですかこのコードは、って感じ)
0x20 D-M2-S Dキー離す
0x1f U-M2-D  〃(この時点でようやくSキー押下コードが出る)
0x20 U-M2-S Sキー離す
0x79 U-変換 変換キー離す


 「変換(M2)↓・D↓・S↓・D↑・変換↑・S↑:なお(Sキーのモデファイヤが押したときと離したときで異なる)」
0x79 D-変換 変換キー押す
0x20 D-M2-D Dキー押す
0xff      Sキー押す(0xff…何ですかこのコードは、って感じ)
0x20 U-M2-D Dキー離す
0x1f D-M2-S  〃(この時点でようやくSキー押下コードが出る)
0x79 U-変換 変換キー離す
0x1f U-S   Sキー離す


 「変換(M2)↓・D↓・S↓・変換↑・D↑・S↑:なし」
0x79 D-変換 変換キー押す
0x20 D-M2-D Dキー押す
0xff      Sキー押す(0xff…何ですかこのコードは、って感じ)
(変換キーを押しながらSキーを打鍵したが、3キー目を即時出せない組み合わせの為、Sキーコードは保留されている。)
0x79 U-変換 変換キー離す
0x1f D-S   〃(この時点でようやくSキー押下コードが出る…が、M2にはなっていない)
 (変換キーを先に抜いたために、「変換キー離す」が先に来て、後からようやく(待たされていた)「Sキー押す」のキーコードが発行された。)
0x20 U-D   Dキー離す
0x1f U-S   Sキー離す


 大丈夫な例:「変換(M2)・F・D:なら」
0x79 D-変換 変換キー押す
0x21 D-M2-F Fキー押す
0x20 D-M2-D Dキー押す
0x21 U-M2-F Fキー離す
0x20 U-M2-D Dキー離す
0x79 U-変換 変換キー離す
(少なくと、キー押下操作時には正しくM2が掛かる)


 ある特定の組み合わせとなる3キーを、順に押していって3キーが同時に打鍵されている状態にすると、なぜか本来のキーコードを吐かずに「0xff」を吐いてしまいます。この時、3キー目のキーコードは発行待ちの状態となります(破棄はされない)。
 で、どれか一つのキーを離した時点で、ようやく3番目に押したキーの押下コードを吐くようですね…


 うーん、これってもしかして、富士通扱い以外のキーボードでは意外とよくあることだったりは…しないですよね、まさか。
 (少なくとも、富士通PFUは「変換・空白・無変換」が親指シフトに使われることを考慮してキーボードの配線をしている…と思いたいですな)


 ひとまず、文字キーを2つ押したままで親指キーを離すと、(素のままでもキーコードが正しく出ない組み合わせの場合に限っては)問題が発生する様ですね。
 ひとまず、「連続シフトが掛からない」件の原因が一つ見つかりました、ということで。
 ほかのトラブルについては、まだ再現すらできていないので調べようが無い状態です。


 うーん、この手の問題については誰が詳しいのか良く解りませんな…教えて!偉い人。