37 lines
1.3 KiB
JavaScript
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];});
|
|
}
|
|
}); |