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

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

もずはっく日記(2012年5月)

2012年5月31日

Bug-org 758420 Apostrophe followed by a letter creates two apostrophes
初回投稿日時: 2012年05月31日21時12分31秒
カテゴリ: Mac Mozilla Core Mozilla15 バグ修正
SNS: (list)

Bug-org 677252の修正によるregressionです。

デッドキーで文字を入力した時に、アクセント記号とベース文字が適当な組み合わせではない場合、アクセント記号とベース文字、二文字として確定されます。

このケースの場合、Cocoaでは、insertTextが一文字ずつ2回呼び出され、二回目のキーのkeyDownで渡されたイベントには二文字とも入っている、という不思議な状態になります。

原因となった修正ではkeypressイベントの初期化を一カ所にまとめた際に、それまでのコードに従ってキーイベントの一文字目をkeypressイベントのcharCodeに設定するようにしたため、'sと入力したい場合に''と入力されてしまうことになっていました。

修正方法は悩んだのですが、keypressイベントの初期化時に予めcharCode値が入っていた場合はその文字の入力イベントを初期化しろという指示だと受け取るように書き換えました。

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

bug-org 758420を含むエントリ