From a00b4ae232c0a0dd7c9074ce033507d701c34582 Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Sat, 4 Oct 2025 06:47:50 -0700 Subject: [PATCH] Always open new window when clicking current workspace: https://feedback.yaak.app/p/dont-trigger-workspace-change-when-clicking-same-workspace --- src-web/components/WorkspaceActionsDropdown.tsx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src-web/components/WorkspaceActionsDropdown.tsx b/src-web/components/WorkspaceActionsDropdown.tsx index 583f65ab..1dab6a0b 100644 --- a/src-web/components/WorkspaceActionsDropdown.tsx +++ b/src-web/components/WorkspaceActionsDropdown.tsx @@ -7,7 +7,11 @@ import { memo, useCallback, useMemo } from 'react'; import { openWorkspaceFromSyncDir } from '../commands/openWorkspaceFromSyncDir'; import { openWorkspaceSettings } from '../commands/openWorkspaceSettings'; import { switchWorkspace } from '../commands/switchWorkspace'; -import { activeWorkspaceAtom, activeWorkspaceMetaAtom } from '../hooks/useActiveWorkspace'; +import { + activeWorkspaceAtom, + activeWorkspaceIdAtom, + activeWorkspaceMetaAtom, +} from '../hooks/useActiveWorkspace'; import { useCreateWorkspace } from '../hooks/useCreateWorkspace'; import { useDeleteSendHistory } from '../hooks/useDeleteSendHistory'; import { showDialog } from '../lib/dialog'; @@ -95,7 +99,12 @@ export const WorkspaceActionsDropdown = memo(function WorkspaceActionsDropdown({ if (workspaceId == null) return; const settings = jotaiStore.get(settingsAtom); - if (typeof settings.openWorkspaceNewWindow === 'boolean') { + const activeWorkspaceId = jotaiStore.get(activeWorkspaceIdAtom); + if (workspaceId === activeWorkspaceId) { + // Always open a new window if the selected one is already active + switchWorkspace.mutate({ workspaceId, inNewWindow: true }); + return; + } else if (typeof settings.openWorkspaceNewWindow === 'boolean') { switchWorkspace.mutate({ workspaceId, inNewWindow: settings.openWorkspaceNewWindow }); return; }