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

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

もずはっく日記(2006年8月)

2006年8月2日

チルトホイール
初回投稿日時: 2006年08月02日04時00分08秒
最終更新日時: 2006年08月02日04時00分26秒
カテゴリ: Memo Mozilla Core
SNS: (list)

GeckoはMicrosoftのマウスのチルトホイールにうまく対応できていない。

ページ全体を横スクロールしたい場合等、うまく機能することもあるのだが、ページ内のoverflow: auto;なスクロールバーをチルトホイールで操作しようとしても、そのコンテンツを一度クリックしていないとうまくいかない。

原因はGeckoの貧弱なOSとの連携と、Microsoftのドライバ側のQuriksによって現在の中途半端な動作になっている模様。

Microsoftのドライバは、ウインドウクラスがMozillaWindowClassの場合、チルトホイールの操作で常に右矢印か、左矢印のキーが押されたことをメッセージでエミュレートする。このため、Geckoでも横スクロールという結果が得られることもあるが、キャレットがキーボードの入力をハンドリングしている状態(エディタとか)ならキャレットの移動になってしまう。

別アプリとの互換性のため、ウインドウクラス名は当然変更できない。WM_HSCROLLに対応しておけば将来のマウスドライバでは動作が改善されるかもしれないが、なまじ、今のドライバで動いているだけに、ドライバが変更を加えれば動作がよりベターなものになるということを気づくとも思えない。

それに、WM_HSCROLLはチルトホイールのための専用メッセージではないので、このメッセージを受信した時にマウスカーソルの位置からスクロールターゲットを判断するのもおかしいかもしれない。(他の外部アプリケーションがこのメッセージをどのように使うのかにもよるが、このへん、全く分からない。)

とりあえず、Bug-org 236257Bug-org 315727あたりを見ていると、WM_VSCROLL共々、なんらかの形でサポートはするべきみたいなので、暇になったら見てみよう。

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

チルトホイール #3

チルトホイール #2