この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。

現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。

もずはっく日記(2011年3月)

2011年3月29日

Bug-org 640884 Can't delete Korean characters in any input text area
初回投稿日時: 2011年03月29日12時34分38秒
最終更新日時: 2011年03月29日12時44分57秒
カテゴリ: Mozilla Core Mozilla5 バグ修正
SNS: (list)

ちょっと、サマリが変なんですが、SCIMのハングル用のエンジンを使っていると、未確定文字列をBackspaceキーで全て消しても、preedit_endシグナルが発生せず、GeckoはIMEの変換が続いていると考えて、その後のBackspaceキーの入力を無視し続ける、というバグです。

Geckoでは、editor側の制限から、widget側では、未確定の状態ではキーイベントを生成しないようにしています。このため、gtk_im_context_filter_keypress()の戻り値は未確定状態では常に無視しています。

今回の修正では、この戻り値がFALSEの場合でなおかつ、キーイベントがGDK_KEY_PRESSで、なおかつ未確定文字列が空の場合、一度、エディタ上では空の文字列で強制確定するようにしてつじつまをあわせています。再び未確定文字列が来ると、自動的にcompositionstartイベントから再開されるので、Webアプリ側から見ると特に変化はありません。

重大な問題ですが、報告が遅すぎたのと、他のIM全てでなんらかの影響がある可能性があるのでFx4.0には申請しませんでしたが、今後、特に問題が報告されなければ、2.0 branchへの投入の申請をしようと考えています。

関連するかもしれないエントリ

bug-org 640884を含むエントリ