From 635747a1ee47278587799088908ae3938d94cea4 Mon Sep 17 00:00:00 2001 From: Nils Schneider Date: Fri, 28 Nov 2025 01:13:53 +0100 Subject: [PATCH] feat: Sort selected workspace items by Z-index to ensure consistent order. --- frontend/src/desktop/DesktopWorkspace.tsx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/frontend/src/desktop/DesktopWorkspace.tsx b/frontend/src/desktop/DesktopWorkspace.tsx index 944ab54..a830aee 100644 --- a/frontend/src/desktop/DesktopWorkspace.tsx +++ b/frontend/src/desktop/DesktopWorkspace.tsx @@ -150,12 +150,21 @@ const DesktopWorkspaceContent: React.FC = ({ } = useWorkspaceSelectionContext(); const handleSelectionChange = useCallback((ids: Identifier[]) => { + // Sort IDs by Z-index (ascending) so the last item is the top-most + const sortedIds = [...ids].sort((a, b) => { + const cardA = layoutStore.items.get(String(a)); + const cardB = layoutStore.items.get(String(b)); + const zA = cardA ? cardA.z : -Infinity; + const zB = cardB ? cardB.z : -Infinity; + return zA - zB; + }); + if (setSelectedEntries) { - const keys = ids.map(id => createDocumentEntryKey(id)); + const keys = sortedIds.map(id => createDocumentEntryKey(id)); setSelectedEntries(keys); } - onSelectionChange?.(ids); - }, [setSelectedEntries, onSelectionChange]); + onSelectionChange?.(sortedIds); + }, [setSelectedEntries, onSelectionChange, layoutStore]); const onClearSelection = useCallback(() => { clearSelection ? clearSelection() : handleSelectionChange([]);