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

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

もずはっく日記(2014年3月)

2014年3月8日

Bug-org 961704 [TSF] Add an option for nsTextStateManager can ignore text change and selection change which are caused by composition
初回投稿日時: 2014年03月08日20時32分12秒
カテゴリ: Mozilla Core Mozilla30 TSF Windows バグ修正
SNS: (list)

TSFは、IMEによるコンテンツの変更をTSFに通知してはいけないという仕様になっているのを、nsTextStore内でフラグを用いて管理していましたが、未確定文字列の変更等によって発生するDOMイベントからエディタのコンテンツが変更されたことか、IMEの操作による変更なのかの見分けがつかないという問題がありました。

Bug-org 960866の修正により、mozilla::TextCompositionに問い合わせれば、エディタがWidgetTextEventを処理中かどうか、つまり、IMEの未確定文字の変更、もしくは確定での変更が発生したのか、他の要因でエディタの内容が変更されたのかを、nsTextStateManagerで判断できるようになりましたので、これを利用し、TSFでは、エディタがWidgetTextEventを処理中に発生した変更は無視することができるようになりました。

ただし、nsTextStore側にはまだ対応をきちんと入れていないため、未確定文字列の変更等の最中にJSから加えられた変更は、まだ、TSFには通知されません。

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

bug-org 961704を含むエントリ