Bug-org 805306 Get rid of nsIMEStateManager::OnTextStateBlur() and nsIMEStateManager::OnTextStateFocus()
初回投稿日時: 2012-10-28 12:00:52
カテゴリ: Mozilla Core Mozilla19 TSF バグ修正
SNS:
Tweet (list)
nsIMEStateManagerは、フォーカス移動の際に、nsFocusManagerから、IMEの有効・無効の管理のために、OnChangeFocus()を呼んでもらい、nsTextStateManagerの生成・破棄のために、OnTextStateFocus()と、OnTextStateBlur()を呼んでもらうという、nsIMEStateManagerの内部を知らないと、非常に意味の分からない設計になっていました。
OnChangeFocus()側を少しいじることで、OnTextStateBlur()が簡単に削除できることが分かったので、まずそれを行っています。
そして、Geckoのエディタがフォーカスイベントを処理後に、nsIMEStateManager::OnFocusInEditor()という新しいメソッドを呼んでもらうことで、本来、OnTextStateFocus()メソッドが設計された時点で想定していた順序で確実に呼び出されるように修正しています(script blockerでフォーカスイベントの生成タイミングがずれた時、呼び出し順序が狂うバグがあったようなのですが、それが修正されています)。