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

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

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

2008年10月15日

Bug 6350 [Win] リトアニア語のキーボードレイアウトで AltGr+9 と AltGr+0 が入力できない
初回投稿日時: 2008年10月15日03時23分36秒
カテゴリ: Mozilla Core バグ修正
SNS: (list)

ものすごく長引いてしまいましたが、ようやく修正完了です。regressionが無ければ1.9.0branchにも投入予定です。

モディファイアキー(CtrlAltキー)が押されている場合、モディファイアキー無しで入力される文字列と比較して、同じであればモディファイアキー付きでDOMイベントを生成し、違っていればモディファイアキーを消費(consume)して、モディファイアキー無しでDOMイベントを生成する、という仕様が原因の一端でした。

Geckoのエディタはモディファイアキー付きのDOMキーイベントは文字入力として処理しないので、このようなややこしい仕様になっています。つまり、文字入力のためのキーイベントであれば、モディファイアキーを消費してDOMキーイベントを生成しなくてはいけません。

AltCtrlが両方押されている — つまり、AltGrが押されている — 場合、モディファイアキーが押されていない場合に入力される文字列と比較して、異なる場合のみ消費する、という処理を行っていました。そのため、AltGrキーの状態に関係無く、入力可能であるべき90でのみ、このバグが発生していたのです。

当初のパッチは単純にこの比較をしないようにしていたのですが、Altキーのみが押されている場合に文字が入力できるようになってしまうregressionがパッチのレビュー通過後に発見できたので、新パッチではAltGrキーが押されている場合のみ比較せずにモディファイアキーを消費するように変更し、それ以外の場合は従来通りの処理を行うようになっています。

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

bug 6350を含むエントリ