File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -279,12 +279,18 @@ class PointerController {
279279 if ( typeof e . wheelDeltaX === 'number' && e . wheelDeltaX !== 0 ) {
280280 return e . wheelDeltaX % 120 === 0 ;
281281 }
282- // Last-resort fallback for browsers without wheelDelta*.
282+ // Fallback for browsers where wheelDelta* is unavailable or 0.
283+ // delta{X,Y} values: physical wheels produce near-integer values
284+ // (e.g. 100, 125) even with smoothing applied. Trackpads produce
285+ // continuously varying fractional values on both axes.
283286 const { deltaX, deltaY } = event ;
284287 if ( deltaX !== 0 && deltaY !== 0 ) {
285288 return false ;
286289 }
287- return Number . isInteger ( deltaX ) && Number . isInteger ( deltaY ) ;
290+ // Check if delta values are close to integers (within 1% of 1.0).
291+ // Smooth scrolling / DPI scaling can add slight fractional offsets.
292+ const isNearInteger = ( v : number ) => Math . abs ( v % 1 ) < 0.01 || Math . abs ( v % 1 ) > 0.99 ;
293+ return ( deltaX === 0 || isNearInteger ( deltaX ) ) && ( deltaY === 0 || isNearInteger ( deltaY ) ) ;
288294 } ;
289295
290296 const wheel = ( event : WheelEvent ) => {
You can’t perform that action at this time.
0 commit comments