Skip to content

Commit 2a752b5

Browse files
committed
fix: zooming handling
1 parent f0792b9 commit 2a752b5

1 file changed

Lines changed: 14 additions & 17 deletions

File tree

src/litegraph.js

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)