From 15f481e96ac6de65cb0d50cb3d06633ff2af9085 Mon Sep 17 00:00:00 2001 From: pythongosssss <125205205+pythongosssss@users.noreply.github.com> Date: Wed, 2 Aug 2023 20:41:59 +0100 Subject: [PATCH] adds setting for always snaps to grid resolves #32 --- js/snapToGrid.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 js/snapToGrid.js diff --git a/js/snapToGrid.js b/js/snapToGrid.js new file mode 100644 index 0000000..ab417a5 --- /dev/null +++ b/js/snapToGrid.js @@ -0,0 +1,27 @@ +import { app } from "/scripts/app.js"; + +const id = "pysssss.SnapToGrid"; +const ext = { + name: id, + async setup(app) { + app.ui.settings.addSetting({ + id, + name: "🐍 Always snap to grid", + defaultValue: false, + type: "boolean", + onChange(value) { + app.canvas.align_to_grid = value; + }, + }); + const origDrawNode = LGraphCanvas.prototype.drawNode; + LGraphCanvas.prototype.drawNode = function () { + const shift = app.shiftDown; + app.shiftDown = true; // Force it to draw the drop position + const r = origDrawNode.apply(this, arguments); + app.shiftDown = shift; + return r; + }; + }, +}; + +app.registerExtension(ext);