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

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

もずはっく日記(2012年10月)

2012年10月28日

Bug-org 805306 Get rid of nsIMEStateManager::OnTextStateBlur() and nsIMEStateManager::OnTextStateFocus()
初回投稿日時: 2012年10月28日12時00分52秒
カテゴリ: Mozilla Core Mozilla19 TSF バグ修正
SNS: (list)

nsIMEStateManagerは、フォーカス移動の際に、nsFocusManagerから、IMEの有効・無効の管理のために、OnChangeFocus()を呼んでもらい、nsTextStateManagerの生成・破棄のために、OnTextStateFocus()と、OnTextStateBlur()を呼んでもらうという、nsIMEStateManagerの内部を知らないと、非常に意味の分からない設計になっていました。

OnChangeFocus()側を少しいじることで、OnTextStateBlur()が簡単に削除できることが分かったので、まずそれを行っています。

そして、Geckoのエディタがフォーカスイベントを処理後に、nsIMEStateManager::OnFocusInEditor()という新しいメソッドを呼んでもらうことで、本来、OnTextStateFocus()メソッドが設計された時点で想定していた順序で確実に呼び出されるように修正しています(script blockerでフォーカスイベントの生成タイミングがずれた時、呼び出し順序が狂うバグがあったようなのですが、それが修正されています)。

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

bug-org 805306を含むエントリ