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でフォーカスイベントの生成タイミングがずれた時、呼び出し順序が狂うバグがあったようなのですが、それが修正されています)。