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

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

もずはっく日記(2011年11月)

2011年11月29日

Bug-org 685395 Redesign IME APIs of nsIWidget for mobile devices
初回投稿日時: 2011年11月29日10時06分50秒
カテゴリ: Mozilla Core Mozilla11 バグ修正
SNS: (list)

nsIWidgetのIME関連のAPIの整理です。

SetIMEEnabled()GetIMEEnabled()はFx4以降、動作しなくなっていましたが、完全に削除されました。

SetInputMode()GetInputMode()SetInputContext()GetInputContext()に改名され、そのパラメータのInputContextからはmReasonが削除され、代わりにSetInputContext()に追加のパラメータで、その呼び出し理由となったユーザのアクション、もしくはコンテンツの変化を通知するようになりました。これにより、実際には保証されていなかった、GetIMEEnabled()で最後に変更があった際の理由を取得するという機能は取り除かれました。

SetIMEOpenState()GetIMEOpenState()はそれぞれ、SetInputContext()GetInputContext()に統合されたため、削除されました。

これらの変更で、APIの形をnsIContent側と共通化できたので、nsIContentで定義されていたIMEの状態を示すフラグは全て廃止され、content側のコードでもwidget側で定義したmozilla::widget::IMEStateを利用するようになりました。これで、二つの状態フラグの存在によるイージーミスを防止することができます。

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

bug-org 685395を含むエントリ