Bug 6350 [Win] リトアニア語のキーボードレイアウトで AltGr+9 と AltGr+0 が入力できない
初回投稿日時: 2008年10月15日03時23分36秒
カテゴリ: Mozilla Core バグ修正
SNS:
Tweet (list)
ものすごく長引いてしまいましたが、ようやく修正完了です。regressionが無ければ1.9.0branchにも投入予定です。
モディファイアキー(Ctrl、Altキー)が押されている場合、モディファイアキー無しで入力される文字列と比較して、同じであればモディファイアキー付きでDOMイベントを生成し、違っていればモディファイアキーを消費(consume)して、モディファイアキー無しでDOMイベントを生成する、という仕様が原因の一端でした。
Geckoのエディタはモディファイアキー付きのDOMキーイベントは文字入力として処理しないので、このようなややこしい仕様になっています。つまり、文字入力のためのキーイベントであれば、モディファイアキーを消費してDOMキーイベントを生成しなくてはいけません。
AltとCtrlが両方押されている — つまり、AltGrが押されている — 場合、モディファイアキーが押されていない場合に入力される文字列と比較して、異なる場合のみ消費する、という処理を行っていました。そのため、AltGrキーの状態に関係無く、入力可能であるべき9と0でのみ、このバグが発生していたのです。
当初のパッチは単純にこの比較をしないようにしていたのですが、Altキーのみが押されている場合に文字が入力できるようになってしまうregressionがパッチのレビュー通過後に発見できたので、新パッチではAltGrキーが押されている場合のみ比較せずにモディファイアキーを消費するように変更し、それ以外の場合は従来通りの処理を行うようになっています。