@@ -7002,30 +7002,27 @@ LGraphNode.prototype.executeAction = function(action)
70027002 return ;
70037003 }
70047004
7005- const isTouchPad = ! ! e . wheelDeltaY && e . wheelDeltaY === e . deltaY * - 3
7005+ const isTouchpadPan = ! ! e . wheelDeltaY && e . wheelDeltaY === e . deltaY * - 3
70067006
7007- if ( isTouchPad ) {
7008- const isNatural = event . webkitDirectionInvertedFromDevice
7009- if ( e . ctrlKey ) {
7010- let scale = this . ds . scale ;
7011- let deltaS = Math . exp ( - e . deltaY / 100 ) ;
7012- scale = isNatural ? scale / deltaS : scale * deltaS
7013- this . ds . changeScale ( scale , [ x , y ] ) ;
7014- }
7015-
7016- const naturalFix = isNatural ? 1 : - 1
7007+ if ( isTouchpadPan ) { // Touchpad pan
7008+ const naturalFix = - 1 ;
70177009 this . ds . offset [ 0 ] += e . deltaX / this . ds . scale * naturalFix ;
70187010 this . ds . offset [ 1 ] += e . deltaY / this . ds . scale * naturalFix ;
70197011 this . dirty_canvas = true ;
70207012 this . dirty_bgcanvas = true ;
70217013 } else {
7022- const delta = e . wheelDeltaY != null ? e . wheelDeltaY : e . detail * - 60 ;
7023- this . adjustMouseEvent ( e ) ;
70247014 let scale = this . ds . scale ;
7025- if ( delta > 0 ) {
7026- scale *= 1.1 ;
7027- } else if ( delta < 0 ) {
7028- scale *= 1 / 1.1 ;
7015+ if ( Math . abs ( e . deltaY ) < 10 ) { // Treat smaller delta as touchpad zoom
7016+ let deltaS = Math . exp ( - e . deltaY / 50 ) ;
7017+ scale = scale * deltaS ;
7018+ } else { // Mouse zoom
7019+ const delta = e . wheelDeltaY != null ? e . wheelDeltaY : e . detail * - 60 ;
7020+ this . adjustMouseEvent ( e ) ;
7021+ if ( delta > 0 ) {
7022+ scale *= 1.1 ;
7023+ } else if ( delta < 0 ) {
7024+ scale *= 1 / 1.1 ;
7025+ }
70297026 }
70307027
70317028 //this.setZoom( scale, [ e.clientX, e.clientY ] );
0 commit comments