Bug-org 705057 Implement composition event manager
初回投稿日時: 2012年10月20日12時27分52秒
カテゴリ: Events Mozilla Core Mozilla19 バグ修正
SNS:
Tweet (list)
これまで、Geckoでは、ネイティブのIMEのイベントから、DOMイベントを生成して、その時点でフォーカスのある要素に対して、そのイベントを発行していました。しかし、これでは、意図せず、強制確定前にフォーカスが移動してしまったケースでは、おかしなことになってしまいます。また、現在のXPレベルのコードでは、エディタ以外に未確定文字列を編集中であるかどうかを管理しているクラスがありませんでしたので、色々と不便がありました。
そこで、compositionstart
で、インスタンスを作成し、compositionend
までの一連のIME系のイベントを全て、compositionstart
を発行したイベントで発行し、compositionend
後に破棄されるクラスを作ると色々と便利だよね、というアイデアになったわけです。
TextComposition
というクラスのインスタンスが、ひとつの、未確定文字列編集を表していて、これのプロセス全体でのリストが、nsIMEStateManager
で管理されている、という形をとっています。
この修正によって改善したのは、
- ワンセットになる、IME関連イベントが全て、同じ要素で確実に発生するようになった
- 生成された
TextComposition
が自動テストで生成されたものかどうか判別できるので、強制確定を含めた自動テストが書けるようになった
の2点のみです。