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

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

もずはっく日記(2009年2月)

2009年2月27日

Bug 6514 [TSF] MS Natural Input 2002では、フォーカス移動時に勝手にIMEがONになる
初回投稿日時: 2009年02月27日19時28分09秒
最終更新日時: 2009年02月27日20時30分57秒
カテゴリ: Mozilla Core TSF Windows バグ却下
SNS: (list)

TSF関連のバグでひとつ忘れていました。

WinXPに標準でインストールされているNatural Input 2002を利用すると、Fx内でフォーカス移動する度にIMEがオンになってしまう、というバグです。

Natural Input 2002の設定画面を見てみると、「起動時の入力モード」という項目があり、デフォルトで「ひらがな」が選択されています。

Natural Input 2002の設定画面のスクリーンショット

NI2002ではフォーカス移動時にTSFのドキュメント、もしくはコンテキストごとに「起動した」と判断しているようです。Geckoは、各エディタ毎に個別のドキュメントとコンテキストを持っているかのように振る舞うので、フォーカスを別のエディタに移す度に起動時の入力モードに変更されてしまう、という問題が発生します。

ですが、これはTSF-awareなアプリケーションでは既知の問題のようで、NI2002の仕様、もしくはバグのようです。現に、NI2003では問題無いそうです。以上の理由から、NI2002のこの挙動は仕様通りであるとしてinvalidとしました。

ひとつだけGeckoのバグと言えるのかもしれないのは、Geckoはフォーカスがエディタから移動する際に、そのエディタのためのドキュメントとコンテキストを逐一、破棄しているため、NI2002でオフにしたエディタに再びフォーカスを戻した時にもオンになってしまうという挙動です。

ですが、これを解決しようとすると、一度フォーカスを得たエディタのドキュメントとコンテキストを、そのエディタが破棄されるまで保持し続けなくてはいけません。これを実現しようとすると、非常に多くのオブザーバを(NI2002のためだけに)登録して、ドキュメントとコンテキストを管理しなくてはいけませんが、NI2002自体がこのバグのために使い物にならないのであれば、無駄な実装と言ってしまっても良いと思います。そのため、バグとして登録されても私は今のところ実装に乗り気ではありません。他のテキストサービスで有用な利用が可能なのであれば話は別ですが……

そういう訳で、Fx3.2ではWinXP標準搭載のNatural Input 2002の利用は非推奨です。Natural Input自体、評判悪いようですが、どうしてもこれが使いたい場合、Office 2003に付いているNatural Input 2003をインストールして利用してください。

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

bug 6514を含むエントリ