Bug-org 960871 Get rid of WidgetTextEvent and WidgetCompositionEvent should take over the job
初回投稿日時: 2014-10-30 17:15:38
カテゴリ: Events Mozilla Core Mozilla35 バグ修正
SNS:
Tweet (list)
compositionupdateは、未確定文字列が変化する前に発火するイベントということに、一応、なっていますので、これは、エディタの未確定文字列を書き換えるためには現在使っていません(というか、内部処理では使っていません)。内部処理では、WidgetTextEventを、NS_TEXT_TEXTイベントとして発火し、textという独自DOMイベントとして発火したものを利用しています。
しかし、この、独自のイベント型であるWidgetTextEventが存在し続けると、各種引数は、共通のスーパークラスである、WidgetGUIEventを使わなくてはいけなかったり、WidgetEvent::mClassメンバの値を何度もチェックする必要があり、コードがスッキリとしない原因になっていました。
このバグの修正により、NS_TEXT_TEXTイベントは、NS_COMPOSITION_CHANGEイベントに変更され、WidgetTextEventクラスは単純に廃止、代わりに、WidgetCompositionEventに、WidgetTextEventのみが持っていた未確定文字列の文節情報を持たせています。独自DOMイベントもUIEventから、CompositionEventに変化していますので、若干の非互換が発生していますが、これが問題になることは実際のケースでは存在しないと思います(CompositionEvent.dataで未確定文字列にはアクセス可能に変更になっています)。
これにより、未確定文字列を取り扱うメソッドで、引数にWidgetGUIEventをとっていたメソッドは、(見つけられた限り)全て、WidgetCompositionEventに修正し、メソッドの利用方法をより明確にしています。
自動テストを記述する際には、EventUtils.synthesizeText()が、EventUtils.synthesizeCompositionChange()に名前が変更されているので注意してください。