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()
に名前が変更されているので注意してください。