diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index f7162b227e..4a7ab64e57 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -128,6 +128,7 @@ It uses our algorithm instead of elk.js to perform the arrange-all. - https://github.com/eclipse-sirius/sirius-web/issues/2640[#2640] [diagram] Compute the handle position on diagram conversion, which happens every time a diagram refresh payload is received. - https://github.com/eclipse-sirius/sirius-web/issues/2647[#2647] [diagram] Split border shorthand CSS properties into non-shorthand properties for list nodes. Make some border node transparent when the node is in a list node in the convert engine. +- https://github.com/eclipse-sirius/sirius-web/issues/2683[#2683] [diagram] Hide diagram element palette when the element itself is moved. === New Features diff --git a/packages/diagrams/frontend/sirius-components-diagrams-reactflow/src/renderer/DiagramRenderer.tsx b/packages/diagrams/frontend/sirius-components-diagrams-reactflow/src/renderer/DiagramRenderer.tsx index 450887da97..eb2ac4fef4 100644 --- a/packages/diagrams/frontend/sirius-components-diagrams-reactflow/src/renderer/DiagramRenderer.tsx +++ b/packages/diagrams/frontend/sirius-components-diagrams-reactflow/src/renderer/DiagramRenderer.tsx @@ -112,6 +112,7 @@ export const DiagramRenderer = ({ diagramRefreshedEventPayload, selection, setSe setNodes(laidOutDiagram.nodes); setEdges(laidOutDiagram.edges); hideDiagramPalette(); + hideDiagramElementPalette(); resetReferencePosition(); fitToScreen(); @@ -128,6 +129,10 @@ export const DiagramRenderer = ({ diagramRefreshedEventPayload, selection, setSe const handleNodesChange: OnNodesChange = (changes: NodeChange[]) => { const transformedNodeChanges = transformBorderNodeChanges(changes); + if (transformedNodeChanges.some((change) => change.type === 'position' || change.type === 'dimensions')) { + hideDiagramElementPalette(); + } + let newNodes = applyNodeChanges(transformedNodeChanges, nodes); newNodes = applyHandleChange(transformedNodeChanges, newNodes as Node[]);