From 02308f9e2fce251ab8a40adc8a68566cc035e349 Mon Sep 17 00:00:00 2001 From: Hiroyasu Nishiyama Date: Sun, 3 Jul 2022 20:39:54 +0900 Subject: [PATCH 1/2] prevennt node from moving out of workspace --- .../@node-red/editor-client/src/js/ui/view-tools.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js index a781c44fc..44da78fec 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js @@ -105,6 +105,8 @@ RED.view.tools = (function() { $(document).one('keyup',endKeyboardMove); endMoveSet = true; } + var space_width = 5000; + var space_height = 5000; var minX = 0; var minY = 0; var node; @@ -120,6 +122,12 @@ RED.view.tools = (function() { node.n.dirty = true; node.n.x += dx; node.n.y += dy; + if ((node.n.x +node.n.w/2) >= space_width) { + node.n.x = space_width -node.n.w/2; + } + if ((node.n.y +node.n.h/2) >= space_height) { + node.n.y = space_height -node.n.h/2; + } node.n.dirty = true; if (node.n.type === "group") { RED.group.markDirty(node.n); @@ -130,6 +138,7 @@ RED.view.tools = (function() { minY = Math.min(node.n.y-node.n.h/2-5,minY); } } + console.log("; mS:", dx, dy, minX, minY); if (minX !== 0 || minY !== 0) { for (var n = 0; n Date: Tue, 5 Jul 2022 09:02:21 +0900 Subject: [PATCH 2/2] introduce RED.view.dimensions for workspace dimensions --- .../@node-red/editor-client/src/js/ui/view-tools.js | 6 +++--- .../@node-red/editor-client/src/js/ui/view.js | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js index 44da78fec..2bec5669c 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view-tools.js @@ -105,8 +105,9 @@ RED.view.tools = (function() { $(document).one('keyup',endKeyboardMove); endMoveSet = true; } - var space_width = 5000; - var space_height = 5000; + var dim = RED.view.dimensions(); + var space_width = dim.width; + var space_height = dim.height; var minX = 0; var minY = 0; var node; @@ -138,7 +139,6 @@ RED.view.tools = (function() { minY = Math.min(node.n.y-node.n.h/2-5,minY); } } - console.log("; mS:", dx, dy, minX, minY); if (minX !== 0 || minY !== 0) { for (var n = 0; n