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

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

もずはっく日記(2013年12月)

2013年12月19日

Bug-org 946044 Pressing the Windows "Application" key inserts a U+0010 'DATA LINK ESCAPE' hexbox into text editor
初回投稿日時: 2013年12月19日15時18分17秒
カテゴリ: Events Mac Mozilla Core Mozilla28 バグ修正
SNS: (list)

MacにPC用のキーボードを接続し、コンテキストメニューを開く、アプリケーションキーを押すと、制御文字である、U+0010が入力され、それがエディタにそのまま表示されてしまうというバグです。

Macでは、キーイベントをハンドリングする際に、controlキーが押されている場合にのみ、制御文字をASCIIアルファベットに変換する処理を行っていましたが、それ以外の場合は素通りしていました。今回、ASCII文字の範囲内にある制御文字が入力された場合には、これを無視するようにしています。CodeInput等で、それ以外の制御文字を入力することは可能なままですが、普通にはあり得ない上に、膨大な調査とコードが必要になるため、それらについては確認しないようにしています。

また、Macでは、PC用のキーボードを接続しても、Macのキーボードにないキーは普通、Aキーと同じ0が仮想キーコードとしてマッピングされ、判別がつかないのですが、アプリケーションキーは固有の数値(0x6E)にマッピングされているので、他のプラットフォームと同様に、keyCodeや、keyの値を設定するように修正しています。

ただし、他のアプリでも、このキーでコンテキストメニューを開くことはできないので、そのようには今のところは修正していません。

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

bug-org 946044を含むエントリ