この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。

現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。

もずはっく日記(2008年12月)

2008年12月31日

Bug 6468 [Cocoa] deadkeyを初めて入力しようとすると失敗する
初回投稿日時: 2008年12月31日20時41分07秒
最終更新日時: 2008年12月31日20時44分11秒
カテゴリ: Mozilla Core バグ修正
SNS: (list)

Macでデッドキーを初回入力時のみ、入力できなくなっていたというバグです。

Macのデッドキーの入力はIMEで実現されています。例えば、アクセント記号を入力した段階で、アクセント記号が未確定文字列として表示されます。ですが、その実装が(表向きは)同じベンダの製品であることえり等のCJKのIMEとは違っているようで、Bug 6369Bug-org 447635の際に追加したIMEへのウインドウレベルの通知タイミングをずらしたのがバグ自体が発生してしまった原因でした。

ですが、本当の原因は他にあり、Bug-org 447635ではAppleのドキュメントにある通りの実装を行ってもATOK(2006)でのみうまく動きませんでした。ATOKはプロパティを設定しても、activate時にしかそれを反映していないバグがあるようで、これに対する回避用のhackyなコードがデッドキーの入力をキャンセルしてしまっていたことが本当の原因でした。

この回避コード自体をATOK以外の場合に走らせないことが一番安全なのですが、Macでは現在のキーボードレイアウトがどのIMEのものであるのかを検査する手段がありません。そこで、キーボードレイアウトが日本語用かどうか調べて、日本語の場合のみこの処理を走らせるようにしています。

それにしてもATOKはWindows版、Mac版を問わず挙動におかしなところが多々あります。個人的にATOKユーザなので事細かく対応できていますが、ATOKユーザじゃなかったら無視しているバグも多々あると思います。ジャストシステムにはもう少しバグの修正を頑張ってもらいたいものです。フィードバックを返そうとしても、お客様窓口、みたいなところしかなくて普通のユーザと同様の定型的な返し方されるので困ったものです。ミドルウェアという他のアプリケーションとの連携ができて初めてまともな製品たりうるものなのですから、開発者向けのちゃんとした窓口を用意してもらいたいものです。

ちなみに、このバグでもMacOSのひどすぎる互換性に苦しめられています。もうレガシーな10.4は切り捨てて欲しいですね。

関連するかもしれないエントリ

bug 6468を含むエントリ