From e641b0a965f3992330872a8e11d4850b94e63c5d Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Mon, 10 May 2021 21:02:54 +0100 Subject: [PATCH] Fix scaling issues when dragging nodes into scaled workspace --- .../editor-client/src/js/ui/palette.js | 17 +++++++---------- .../@node-red/editor-client/src/js/ui/view.js | 10 +++++++--- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/palette.js b/packages/node_modules/@node-red/editor-client/src/js/ui/palette.js index 0cb202051..09f4758f1 100755 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/palette.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/palette.js @@ -320,12 +320,12 @@ RED.palette = (function() { var paletteNode = getPaletteNode(nt); ui.originalPosition.left = paletteNode.offset().left; mouseX = ui.position.left - paletteWidth + (ui.helper.width()/2) + chart.scrollLeft(); - mouseY = ui.position.top - paletteTop + (ui.helper.height()/2) + chart.scrollTop(); + mouseY = ui.position.top - paletteTop + (ui.helper.height()/2) + chart.scrollTop() + 10; if (!groupTimer) { groupTimer = setTimeout(function() { - mouseX /= RED.view.scale(); - mouseY /= RED.view.scale(); - var group = RED.view.getGroupAtPoint(mouseX,mouseY); + var mx = mouseX / RED.view.scale(); + var my = mouseY / RED.view.scale(); + var group = RED.view.getGroupAtPoint(mx,my); if (group !== hoverGroup) { if (hoverGroup) { document.getElementById("group_select_"+hoverGroup.id).classList.remove("red-ui-flow-group-hovered"); @@ -357,23 +357,20 @@ RED.palette = (function() { svgRect.width = 1; svgRect.height = 1; nodes = chartSVG.getIntersectionList(svgRect,chartSVG); - mouseX /= RED.view.scale(); - mouseY /= RED.view.scale(); } else { // Firefox doesn't do getIntersectionList and that // makes us sad - mouseX /= RED.view.scale(); - mouseY /= RED.view.scale(); nodes = RED.view.getLinksAtPoint(mouseX,mouseY); } - + var mx = mouseX / RED.view.scale(); + var my = mouseY / RED.view.scale(); for (var i=0;i