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

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

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

2006年8月1日

Bug 5175 マウスホイールの動作はどうあるべきか #3
初回投稿日時: 2006年08月01日03時02分57秒
最終更新日時: 2006年08月01日03時04分24秒
カテゴリ: Mozilla Core
SNS: (list)

より自然なトランザクションを構築するためにリトライ中。現在のパッチは、

  • マウスホイールイベント直前のマウスの移動も無視するように改善
  • 各設定値を短くした

マウスの移動を無視するコードについては前回の修正時に全く気づいていなかったのだが、現在のコードはホイールイベント直後のマウスの移動イベントは無視するものの、直前のイベントは無視していない。これを無視するように改善したことで、ホイールイベントの前後あわせて倍の時間、マウスの移動を無視することができるようになったので、その時間を0.1秒に大幅に短縮した(つまり、実質は0.2秒無視される)。何度かテストした結果、ホイールを回した後、0.1秒以内に意図的にマウスを動かすのは極めて難しかったので、これで、全ての意図したマウスの移動イベントでトランザクションを分割することができると思う。

ちなみに、前回のエントリで、えむもじらさんから、

時間だけではなく、マウスの移動量も考慮してはどうでしょうか? 大きく移動させた後でスクロールを開始した場合は、無条件にマウスカーソル直下を対象にしてもよいと思います。

というご意見を頂いたが、これは却下。というか、以前のパッチはこれを意識するようになっていたが、結局、これの閾値が非常に難問だったので、自らボツにしていた。何故かというと、マウスの移動速度を取得できないからだ。仕方ないのでカーソル位置のスクリーンの解像度から適当な値を求めようとしたのだが、マウスの移動速度を変更するとやっぱり破綻してしまった。その結果が現在の時間軸での閾値の作成につながっているのである。

時間軸は多くの人にとって、PCの環境には依存せずに共通の基準があるように思う。(個人差はあると思うがそれはPCの環境差よりも小さいと思う。もちろん、マウスを利用しにくい障碍のある人であれば、このパッチはうまく機能しないが、それは、以前の動作と同じになるだけであって、おせっかいな動作でうまく機能しない訳ではないので、許容範囲内であると考えている。)

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

bug 5175を含むエントリ

Bug 5175 マウスホイールの動作はどうあるべきか #5

Bug 5175 マウスホイールの動作はどうあるべきか #4

Bug 5175 マウスホイールの動作はどうあるべきか #2

Bug 5175 マウスホイールの動作はどうあるべきか