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

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

もずはっく日記(2011年7月)

2011年7月29日

Bug-org 610829 Japanese IME: The textbox may move to a different window prior to commit
初回投稿日時: 2011年07月29日09時28分39秒
カテゴリ: Mozilla Core Mozilla8 バグ修正
SNS: (list)

IMEの強制確定処理が、Firefoxのウインドウの切替で発生した場合にはうまく動かない、というバグです。

原因は、切替先のウインドウでアクティブなIMEのコンテキストが存在しない場合に、::ImmNotifyIME()による強制確定処理が空振りに終わっていたことです。

このAPIが呼ばれる直前に、一時的にそのウインドウのデフォルトのコンテキストを与えるようにすることで修正しました。

また、今まではコンテキストをウインドウから切り離す際に、切り離したコンテキストを保存しておいて、それを再び関連づける、という形で処理していましたが、Win98/Win2000以降で使える::ImmAssociateContextEx() APIが現在のGeckoのサポート状況だと利用できるので、こちらを使って常にデフォルトのコンテキストを割り当てるようになりました。このため、何らかのバグや、他のユーティリティの影響で保存していたコンテキストを万が一、失ってしまってもフォーカス移動だけで問題が解決するようになっています。このため、時々見かける、Firefoxを再起動するまでIMEが希に利用できなくなる、というバグを修正しているかもしれません。

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

bug-org 610829を含むエントリ