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

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

もずはっく日記(2016年3月)

2016年3月16日

Bug-org 1137563 Make TextInputHandler use TextEventDispatcher
初回投稿日時: 2016年10月15日21時33分10秒
最終更新日時: 2016年10月15日21時33分28秒
カテゴリ: Events IME KeyboardEvent Mac Mozilla Core Mozilla48 バグ修正
SNS: (list)

Bug-org 1137572の修正にあわせて、Mac版のネイティブキーイベントをハンドリングしているTextInputHandlerとネイティブIMEイベントをハンドリングしているIMEInputHandler、さらにこれらの基底クラスであるTextInputHandlerBaseTextEventDispatcherを利用するように修正しました。

OS XではネイティブのIMEコンテキストはトップレベルウインドウ単位で存在している様(ドキュメントでは見つけていないものの、実際の挙動を確認しているとその模様)ですが、GeckoのはNSViewがトップレベルウインドウ内にひとつだけ存在し、フォーカスを持つという構造なので、NSViewごとに作られるnsChildViewのメンバであるTextInputHandlerBaseTextEventDispatcherListenerを実装しています。

この様な事情のため、トップレベルウインドウであるnsCocoaWindowGetNativeTextEventDispatcherListener()は常にnullptrを返すことに注意してください(ただ、クロスプラットフォームなコードからnsIWidgetのインスタンスにアクセスする際に、それがnsCocoaWindowであることは関連するコードでは無いことですが)。

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

bug-org 1137563を含むエントリ