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

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

もずはっく日記(2015年8月)

2015年8月9日

Bug-org 1191213 nsBaseWidget::NotifyWindowMoved() shouldn't notify IME when native IME handler doesn't have focus
初回投稿日時: 2015年08月09日11時35分01秒
最終更新日時: 2015年08月09日11時38分05秒
カテゴリ: IME Mozilla Core Mozilla42 バグ修正
SNS: (list)

ウインドウが移動した場合に、候補ウインドウの位置をそれに追従させるために、nsBaseWidget::NotifyWindowMoved()NOTIFY_IME_OF_POSITION_CHANGEを発行していますが、IMEContentObserverが存在していない際にも発行していたため、これを確認しようというバグです。

nsBaseWidgetwidgetのコードですので、dom配下のIMEContentObserverを直接見るべきではありません(簡単にできますが、モジュール間の依存関係上、好ましくない)。そこで、今回の修正では、IMEContentObserverが生成された時に発行されるNOTIFY_IME_OF_FOCUSと、破棄される時に発行されるNOTIFY_IME_OF_BLURの間、nsBaseWidget::mIMEHasFocustrueにするようにし、これがtrueの場合にのみ、nsBaseWidget::NotifyWindowMoved()NOTIFY_IME_OF_POSITION_CHANGEを発行するように修正しました。

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

bug-org 1191213を含むエントリ