Bug 6468 [Cocoa] deadkeyを初めて入力しようとすると失敗する
初回投稿日時: 2008年12月31日20時41分07秒
最終更新日時: 2008年12月31日20時44分11秒
カテゴリ: Mozilla Core バグ修正
SNS:
Tweet (list)
Macでデッドキーを初回入力時のみ、入力できなくなっていたというバグです。
Macのデッドキーの入力はIMEで実現されています。例えば、アクセント記号を入力した段階で、アクセント記号が未確定文字列として表示されます。ですが、その実装が(表向きは)同じベンダの製品であることえり等のCJKのIMEとは違っているようで、Bug 6369でBug-org 447635の際に追加したIMEへのウインドウレベルの通知タイミングをずらしたのがバグ自体が発生してしまった原因でした。
ですが、本当の原因は他にあり、Bug-org 447635ではAppleのドキュメントにある通りの実装を行ってもATOK(2006)でのみうまく動きませんでした。ATOKはプロパティを設定しても、activate時にしかそれを反映していないバグがあるようで、これに対する回避用のhackyなコードがデッドキーの入力をキャンセルしてしまっていたことが本当の原因でした。
この回避コード自体をATOK以外の場合に走らせないことが一番安全なのですが、Macでは現在のキーボードレイアウトがどのIMEのものであるのかを検査する手段がありません。そこで、キーボードレイアウトが日本語用かどうか調べて、日本語の場合のみこの処理を走らせるようにしています。
それにしてもATOKはWindows版、Mac版を問わず挙動におかしなところが多々あります。個人的にATOKユーザなので事細かく対応できていますが、ATOKユーザじゃなかったら無視しているバグも多々あると思います。ジャストシステムにはもう少しバグの修正を頑張ってもらいたいものです。フィードバックを返そうとしても、お客様窓口、みたいなところしかなくて普通のユーザと同様の定型的な返し方されるので困ったものです。ミドルウェアという他のアプリケーションとの連携ができて初めてまともな製品たりうるものなのですから、開発者向けのちゃんとした窓口を用意してもらいたいものです。
ちなみに、このバグでもMacOSのひどすぎる互換性に苦しめられています。もうレガシーな10.4は切り捨てて欲しいですね。