@@ -1733,16 +1733,62 @@ function Activity() {
17331733 if ( docById ( "numberLabel" ) != null ) docById ( "numberLabel" ) . style . display = "none" ;
17341734 }
17351735
1736+ let normalizeWheel = ( event ) => {
1737+ let PIXEL_STEP = 10 ;
1738+ let LINE_HEIGHT = 40 ;
1739+ let PAGE_HEIGHT = 800 ;
1740+
1741+ let sX = 0 , sY = 0 , // spinX, spinY
1742+ pX = 0 , pY = 0 ; // pixelX, pixelY
1743+
1744+ if ( 'detail' in event ) sY = event . detail ;
1745+ if ( 'wheelDelta' in event ) sY = - event . wheelDelta / 120 ;
1746+ if ( 'wheelDeltaY' in event ) sY = - event . wheelDeltaY / 120 ;
1747+ if ( 'wheelDeltaX' in event ) sX = - event . wheelDeltaX / 120 ;
1748+
1749+ // side scrolling on FF with DOMMouseScroll
1750+ if ( 'axis' in event && event . axis === event . HORIZONTAL_AXIS ) {
1751+ sX = sY ;
1752+ sY = 0 ;
1753+ }
1754+
1755+ pX = sX * PIXEL_STEP ;
1756+ pY = sY * PIXEL_STEP ;
1757+
1758+ if ( 'deltaY' in event ) pY = event . deltaY ;
1759+ if ( 'deltaX' in event ) pX = event . deltaX ;
1760+
1761+ if ( ( pX || pY ) && event . deltaMode ) {
1762+ if ( event . deltaMode == 1 ) { // ff uses deltamode = 1
1763+ pX *= LINE_HEIGHT ;
1764+ pY *= LINE_HEIGHT ;
1765+ } else { // delta in PAGE units
1766+ pX *= PAGE_HEIGHT ;
1767+ pY *= PAGE_HEIGHT ;
1768+ }
1769+ }
1770+
1771+ // Fall-back if spin cannot be determined
1772+ if ( pX && ! sX ) sX = ( pX < 1 ) ? - 1 : 1 ;
1773+ if ( pY && ! sY ) sY = ( pY < 1 ) ? - 1 : 1 ;
1774+
1775+ return { pixelX : pX ,
1776+ pixelY : pY } ;
1777+ }
1778+
17361779 let __wheelHandler = function ( event ) {
1737- if ( event . deltaY !== 0 && event . axis === event . VERTICAL_AXIS ) {
1780+ let data = normalizeWheel ( event ) ; // normalize over different browsers
1781+ let delY = data . pixelY ;
1782+ let delX = data . pixelX ;
1783+ if ( delY !== 0 && event . axis === event . VERTICAL_AXIS ) {
17381784 closeAnyOpenMenusAndLabels ( ) ; // closes all wheelnavs when scrolling .
1739- blocksContainer . y -= event . deltaY ;
1785+ blocksContainer . y -= delY ;
17401786 }
17411787 // horizontal scroll
17421788 if ( scrollBlockContainer ) {
1743- if ( event . deltaX !== 0 && event . axis === event . HORIZONTAL_AXIS ) {
1789+ if ( delX !== 0 && event . axis === event . HORIZONTAL_AXIS ) {
17441790 closeAnyOpenMenusAndLabels ( ) ;
1745- blocksContainer . x -= event . deltaX ;
1791+ blocksContainer . x -= delX ;
17461792 }
17471793 } else {
17481794 event . preventDefault ( ) ;
0 commit comments