Bug-org 1049768 [TSF] Glitches in Chinese IME with intl.tsf.enable=true
初回投稿日時: 2014年08月12日01時02分03秒
最終更新日時: 2014年08月12日01時03分48秒
カテゴリ: Mozilla Core Mozilla34 TSF Windows バグ修正
SNS:
Tweet (list)
台湾のサードパーティー製のIME、Free ChangJie IMEと、Easy Changjeiでは、一文字確定するためにスペースキーを押す度に、スペースと、確定された文字が入力される、というバグです。
nsTextStore
のログを調べてみると、これらのTIPからは、ITfContextOwnerCompositionSink::OnUpdateComposition()
がITextStore::SetSelection()
や、ITextStore::SetText()
等の後に呼び出されるにも関わらず、新しい未確定文字列のレンジを引数で渡してきていないため、compositionupdate
イベントと、そのためのtext
イベントを発火させるための準備情報を完全に埋めないまま、これらのイベントが発火されてしました。これが、おかしな挙動の原因です。
今回の修正で、ITfContextOwnerCompositionSink::OnUpdateComposition()
が更新済みのレンジを引数で受け取らなかった場合、compositionupdate
の発火を未完であることを明示した上で予約しておき、ドキュメントのロックが解除される時に、予約されたその情報が未完のままであれば、その場で最新の情報を取得した後でイベントを発火するように修正しました。