diff --git a/web/js/snapToGridGuide.js b/web/js/snapToGridGuide.js index 75a975a..54a8a0c 100644 --- a/web/js/snapToGridGuide.js +++ b/web/js/snapToGridGuide.js @@ -97,11 +97,16 @@ const ext = { } }); + const alwaysSnapToGrid = () => + app.ui.settings.getSettingValue("pysssss.SnapToGrid", /* default=*/ false); + const snapToGridEnabled = () => + app.shiftDown || alwaysSnapToGrid(); + // Override drag-and-drop behavior to show orthogonal guide lines around selected node(s) and preview of where the node(s) will be placed - const origDrawNode = LGraphCanvas.prototype.drawNode + const origDrawNode = LGraphCanvas.prototype.drawNode; LGraphCanvas.prototype.drawNode = function (node, ctx) { const enabled = guide_config.lines.enabled || guide_config.block.enabled; - if (enabled && app.shiftDown && this.node_dragged && node.id in this.selected_nodes) { + if (enabled && this.node_dragged && node.id in this.selected_nodes && snapToGridEnabled()) { // discretize the canvas into grid let x = LiteGraph.CANVAS_GRID_SIZE * Math.round(node.pos[0] / LiteGraph.CANVAS_GRID_SIZE); let y = LiteGraph.CANVAS_GRID_SIZE * Math.round(node.pos[1] / LiteGraph.CANVAS_GRID_SIZE);