この記事は、Windows でウインドウのキャプチャソフトを利用されている方、マウスホイールがうまく動かず困っている方、Web アプリケーションの開発者の方のためのものです。
Windows には WM_VSCROLL
と WM_HSCROLL
というシステムメッセージがあり、(本来の利用目的とは違うものの) 他のアプリケーションに、その内容をスクロールして欲しいという要求を出すことができます。
Firefox 4 では、これらのメッセージを受け取った場合に、スクロール処理をするようになりました。
これらのメッセージはウインドウの内容をキャプチャするソフトウェアでよく利用されているので、そういったアプリケーションとの連携ができるようになったと言えます (保証するものではありません)。
Firefox でこれらのメッセージを受け取った場合にどの部分がスクロールするかというと、簡単に言うなら、そのときに矢印キーでスクロールできる部分です。キャプチャする直前に、スクロールして欲しい部分の内容を一度クリックしておくと、期待通りに動作すると思います。
残念ながら、Firefox の仕様上、メッセージを出すアプリケーション側でスクロール対象を指定することはできません。
Web 開発者の方からこのメッセージの処理結果を見ると、スクロールバーの操作でスクロールした場合と同じに見えます。つまり、特に入力イベントは発生しないまま、スクロールだけが発生します。
最後に、ごく一部のマウスのドライバ、ユーティリティでは、マウスホイールの回転に応じて、これらのメッセージを送信するものがあります。ですが、このままでは、そのマウスホイールの回転をWeb アプリケーションはマウスホイールの回転が行われたとは分からず、処理できません。
もし、キャプチャソフト等を利用せず、そういったマウスをご利用の場合 (つまり、Firefox 4 で初めてマウスホイールが利用できるようになった場合)、ロケーションバーに about:config
と打ち込み、Enter キーを押してください。そうすると、警告画面が出てきますので、そこに書いてあることに同意してボタンを押すと、設定画面が出てきます。その画面で、mousewheel.emulate_at_wm_scroll
という設定項目を探して (フィルタにこの名前を入力すると絞り込めます)、ダブルクリックで設定値を true
に変更して、Firefox を再起動してください。
そうすると、Firefox はこれらのスクロールメッセージをマウスホイールメッセージに読み替えて処理しますので、クリックされた場所ではなく、カーソルの下がスクロールされるようになり、Ctrl キーを押しながらホイールを回転すると、ズームイン、ズームアウトが処理され、また、Google マップ等の、ホイールのイベントを直接処理している Web アプリケーションが期待通りに動作するようになります。