diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js index 44948caaa..55055d036 100755 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js @@ -554,8 +554,10 @@ RED.view = (function() { activeGroups = RED.nodes.groups(activeWorkspace)||[]; activeGroups.forEach(function(g) { if (g.g) { + g._root = g.g; g._depth = 1; } else { + g._root = g.id; g._depth = 0; } }); @@ -571,15 +573,30 @@ RED.view = (function() { g._depth = parentDepth + 1; changed = true; } - } else { - console.log("Missing group",g.g); + if (g._root !== parentGroup._root) { + g._root = parentGroup._root; + changed = true; + } } } }); } while (changed) activeGroups.sort(function(a,b) { - return a._depth - b._depth; + if (a._root === b._root) { + return a._depth - b._depth; + } else { + return a._root.localeCompare(b._root); + } }); + + var group = groupLayer.selectAll(".red-ui-flow-group").data(activeGroups,function(d) { return d.id }); + group.sort(function(a,b) { + if (a._root === b._root) { + return a._depth - b._depth; + } else { + return a._root.localeCompare(b._root); + } + }) } function generateLinkPath(origX,origY, destX, destY, sc) { @@ -4126,7 +4143,11 @@ if (DEBUG_EVENTS) { console.warn("nodeMouseDown", mouse_mode,d); } }); if (addedGroups) { group.sort(function(a,b) { - return a._depth - b._depth; + if (a._root === b._root) { + return a._depth - b._depth; + } else { + return a._root.localeCompare(b._root); + } }) } group[0].reverse();