blechmusikの日記

いろいろなことを書いています。

DvorakJ で Google 日本語入力を使用するとローマ字入力に切り替わる原因が分かった

DvorakJ 2010-05-05 版から IME の状態を取得する手法を変更したことが原因だった。
この処理を見直した結果、不具合が生じるのは、変換候補が自動的に表示されたとき以後だということがわかった。正確に述べよう。変換候補を表示する窓が表示されると、直接入力用の配列へと自動的に切り替えてしまう。この処理ではいただけない。たしかに、変換候補を asdf... で選択する変換窓が表示されているときなら、直接入力用の配列に切り替えるべきだ。とはいえ、変換候補をアルファベットで選択できない候補窓を表示しているときには、直接入力用の配列に切り替えるべきではない。そのまま日本語入力用配列を使用し続けるべきだ。これについては、以下の画像を参照すればすぐに理解してもらえるだろう。現在の DvorakJ では、以下の二つの候補窓を同一のものとしてしか認識できない。


解決法は、変換候補を表示する窓の種類を判別できるようにすることだ。どうすればよいのだろうか?


追記:以前と同様の手法をとるならば、Google 日本語入力で候補窓を表示しているときでも、日本語入力用配列を使用し続けるよう設定する。スクリプト版では、IME.ahk の 276 行目の末尾を 2 から 1 へと変更するだけでよい。他に取り得る手段がなければ、このような対処法を適用した版を早速公開しよう。


さらに追記:本日公開した版では、以前と同様の手法を採用してこの問題に対処した。