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

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

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

2008年3月13日

Bug 6053 デッドキーを連続入力しても文字が入力されない場合がある
初回投稿日時: 2008年03月13日20時04分17秒
カテゴリ: Mozilla Core バグ修正
SNS: (list)

フランス語等のキーボードレイアウトの時に、チルダを二回入力しても、チルダが二文字入力されず、何も起こらなかったというバグです。

ヨーロッパの一部のキーボードレイアウトでは、チルダはアクセント記号として利用するためにデッドキーとして入力を受け付けています。そのため、一文字入力した段階ではまだチルダは表示されません。この状態でa等のアルファベットを入力するとã等が入力される訳ですが、チルダをもう一度入力するとチルダが二文字出力されるということになります。ところが、trunkではregressionで何も起こらなくなっていました。

原因はKeyDown時にKeyPressイベントを処理するために、次に来るWM_CHARメッセージ等を削除してメッセージが実際に届く前に処理を行っていたのですが、デッドキーが入力された場合で、なおかつ、特定のキーの組み合わせの場合に、デッドキー入力なのですぐに処理しないにも関わらず、メッセージだけを削除してしまい、何文字チルダを入力しても「二文字目の」入力とはならずに、メッセージが破棄され続けるというものでした。

キーの組み合わせに関係無く、デッドキーの入力の場合には特殊な処理を行わないように変更することで修正できています。

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

bug 6053を含むエントリ