Bug-org 962920 [TSF] Should commit composition at entering modal state
初回投稿日時: 2014年07月24日05時19分56秒
最終更新日時: 2014年07月24日05時39分11秒
カテゴリ: Mozilla Core Mozilla33 TSF Windows バグ修正
SNS:
Tweet (list)
TSFモードで、未確定文字列がある時に、ファイルを開くダイアログ等を表示すると、未確定文字列が確定されず、ダイアログ上で何も入力できない、というバグです。
TSFはスレッド単位で管理されているシステムなので、ブラウザ自体のIMEと、Windowsネイティブのダイアログ上とで、同じコンテキストを共有していることになります。このため、ブラウザ自体で未確定文字列を確定せずに掴んだままだと、ネイティブダイアログ上でどうしようもなくなる、というのがこのバグの原因です。
正攻法ではないのですが、ネイティブのモーダルダイアログが開くと、WM_ENTERIDLE
が親ウインドウに送信されますので、これを受け取ったら、強制確定するように修正しました。理想的なアプローチとしては、ネイティブのモーダルダイアログを開くAPIを呼び出す直前で強制確定を行うようにすべきですが、メンテナンス性が悪く、新しいダイアログのサポート時に対応が漏れる可能性がある上、手間がかなりかかることから、このようなアプローチに落ち着いています。