34 lines
1.2 KiB
JavaScript
34 lines
1.2 KiB
JavaScript
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];});
|
|
}
|
|
}); |