チルトホイール
初回投稿日時: 2006年08月02日04時00分08秒
最終更新日時: 2006年08月02日04時00分26秒
カテゴリ: Memo Mozilla Core
SNS:
Tweet (list)
GeckoはMicrosoftのマウスのチルトホイールにうまく対応できていない。
ページ全体を横スクロールしたい場合等、うまく機能することもあるのだが、ページ内のoverflow: auto;
なスクロールバーをチルトホイールで操作しようとしても、そのコンテンツを一度クリックしていないとうまくいかない。
原因はGeckoの貧弱なOSとの連携と、Microsoftのドライバ側のQuriksによって現在の中途半端な動作になっている模様。
Microsoftのドライバは、ウインドウクラスがMozillaWindowClass
の場合、チルトホイールの操作で常に右矢印か、左矢印のキーが押されたことをメッセージでエミュレートする。このため、Geckoでも横スクロールという結果が得られることもあるが、キャレットがキーボードの入力をハンドリングしている状態(エディタとか)ならキャレットの移動になってしまう。
別アプリとの互換性のため、ウインドウクラス名は当然変更できない。WM_HSCROLL
に対応しておけば将来のマウスドライバでは動作が改善されるかもしれないが、なまじ、今のドライバで動いているだけに、ドライバが変更を加えれば動作がよりベターなものになるということを気づくとも思えない。
それに、WM_HSCROLL
はチルトホイールのための専用メッセージではないので、このメッセージを受信した時にマウスカーソルの位置からスクロールターゲットを判断するのもおかしいかもしれない。(他の外部アプリケーションがこのメッセージをどのように使うのかにもよるが、このへん、全く分からない。)
とりあえず、Bug-org 236257とBug-org 315727あたりを見ていると、WM_VSCROLL
共々、なんらかの形でサポートはするべきみたいなので、暇になったら見てみよう。