| import { app } from "../../../scripts/app.js"; | |
| app.registerExtension({ | |
| name: "JNodes.CtrlShiftToPanFaster", | |
| init() { | |
| const panSpeedFactor = 10; | |
| let last_mouse = [0, 0]; | |
| function processMouseMove(event) { | |
| var mouse = [event.clientX, event.clientY]; | |
| var delta = [ | |
| (mouse[0] - last_mouse[0]) * panSpeedFactor, | |
| (mouse[1] - last_mouse[1]) * panSpeedFactor | |
| ]; | |
| last_mouse = mouse; | |
| if (event.shiftKey && event.ctrlKey) { | |
| var LiteGraphInstance = window?.LiteGraph; | |
| var canvas = LiteGraphInstance?.LGraphCanvas?.active_canvas; | |
| if (canvas && canvas.ds) { | |
| canvas.ds.offset[0] += delta[0] / canvas.ds.scale; | |
| canvas.ds.offset[1] += delta[1] / canvas.ds.scale; | |
| canvas.dirty_canvas = true; | |
| canvas.dirty_bgcanvas = true; | |
| } | |
| } | |
| } | |
| document.addEventListener("mousemove", processMouseMove); | |
| document.addEventListener("mouseup", (event) => {last_mouse = [event.clientX, event.clientY];}); | |
| } | |
| }); |