From 3986fed9f7a6a3319d611bed62ccde74c94c4b9f Mon Sep 17 00:00:00 2001 From: shrimbly Date: Mon, 9 Mar 2026 23:17:48 +1300 Subject: [PATCH] fix: subtract settings panel height in aspect-fit double-click resize calculateAspectFitSize was receiving the total node height (content + settings panel), producing incorrect aspect-fit dimensions when settings were expanded. Now subtracts trackedSettingsHeight before calculating and re-adds it when applying the final height. Co-Authored-By: Claude Opus 4.6 --- src/components/nodes/BaseNode.tsx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/components/nodes/BaseNode.tsx b/src/components/nodes/BaseNode.tsx index cc1138ba..908e36e1 100644 --- a/src/components/nodes/BaseNode.tsx +++ b/src/components/nodes/BaseNode.tsx @@ -173,23 +173,28 @@ export function BaseNode({ const thisNode = getNodes().find((n) => n.id === id); if (!thisNode) return; + const nodeHeight = getNodeDimension(thisNode, "height"); + const contentHeight = nodeHeight - trackedSettingsHeight; + const newSize = calculateAspectFitSize( dims.width / dims.height, getNodeDimension(thisNode, "width"), - getNodeDimension(thisNode, "height"), + contentHeight, fullBleed ); + const finalHeight = newSize.height + trackedSettingsHeight; + setNodes((nds) => nds.map((n) => { if (n.id === id || (n.selected && n.id !== id)) { - return applyNodeDimensions(n, newSize.width, newSize.height); + return applyNodeDimensions(n, newSize.width, finalHeight); } return n; }) ); }, - [aspectFitMedia, id, fullBleed, getNodes, setNodes] + [aspectFitMedia, id, fullBleed, getNodes, setNodes, trackedSettingsHeight] ); const hasExpandedSettings = settingsExpanded && settingsPanel;