Files
JaredTherriault-ComfyUI-JNodes/web/js/CtrlShiftToPanFaster.js
T

37 lines
1.3 KiB
JavaScript

// Enables fast canvas panning by holding Ctrl+Shift and dragging the mouse in the ComfyUI graph editor.
// Multiplies mouse delta by a configurable speed factor for rapid navigation.
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("pointermove", processMouseMove);
document.addEventListener("pointerup", (event) => {last_mouse = [event.clientX, event.clientY];});
}
});