Bug-org 422132 font size 0px on div with scrollbars disables mouse wheel scrolling
 初回投稿日時: 2012-08-16 13:23:28
カテゴリ: Mozilla Core Mozilla17 バグ修正 
SNS: 
	Tweet (list)
	
font-size: 0;のスクロール可能な要素では、ホイールによってスクロールできない、というバグです。実際には、キーボードの矢印キーでもスクロールできませんでした。
nsIScrollableFrame::GetScrollLineAmount()がフォントサイズを元に、行高を返してくるので、この値を元にスクロール処理を行うのですが、中途半端なことに、このメソッドはfont-size: 0;の場合に、1 app unitを返してきていました。これは、Gecko内部では、60分の1pxとなりますので結果、スクロールしないという形になっていました。
このバグの修正で、mousewheel.min_line_scroll_amountという設定を追加しました。nsIScrollableFrame::GetScrollLineAmount()は、この設定値(意味はピクセル数)より、計算した戻り値が小さい場合、この設定値と同じ意味の値を返すようになります。
また、ホイールイベントは、0.1行ずつスクロール、といったことが普通にありますので、その修正だけではまだスクロールできません。このため、nsEventStateManager::DeltaAccumulatorで、スクロールに利用されなかった端数を記録しておくようにしました。このため、スクロール量が小さい場合でも、ホイールを回し続ければ、トータルでは期待通りのスクロールスピードでスクロールするようになっています。