diff --git a/src/components/bar/modules/workspaces/helpers/index.ts b/src/components/bar/modules/workspaces/helpers/index.ts index 1e746ca..47ab9d5 100644 --- a/src/components/bar/modules/workspaces/helpers/index.ts +++ b/src/components/bar/modules/workspaces/helpers/index.ts @@ -94,13 +94,15 @@ function isWorkspaceValidForMonitor( }); const currentMonitorName = monitorNameMap[monitorId]; - const currentMonitorWorkspaceRules = workspaceMonitorRules[currentMonitorName]; + const currentMonitorWorkspaceRules = workspaceMonitorRules[currentMonitorName] ?? []; + const activeWorkspaceIds = new Set(allWorkspaceInstances.map((ws) => ws.id)); + const filteredWorkspaceRules = currentMonitorWorkspaceRules.filter((ws) => !activeWorkspaceIds.has(ws)); - if (currentMonitorWorkspaceRules === undefined) { + if (filteredWorkspaceRules === undefined) { return false; } - return currentMonitorWorkspaceRules.includes(workspaceId); + return filteredWorkspaceRules.includes(workspaceId); } /** @@ -319,6 +321,12 @@ export function getWorkspacesToRender( ); const activeWorkspacesForCurrentMonitor = activeWorkspaceIds.filter((workspaceId) => { + const metadataForWorkspace = allWorkspaceInstances.find((workspaceObj) => workspaceObj.id === workspaceId); + + if (metadataForWorkspace) { + return metadataForWorkspace?.monitor?.id === monitorId; + } + if ( currentMonitorInstance && Object.hasOwnProperty.call(workspaceMonitorRules, currentMonitorInstance.name) && @@ -326,8 +334,6 @@ export function getWorkspacesToRender( ) { return workspaceMonitorRules[currentMonitorInstance.name].includes(workspaceId); } - const metadataForWorkspace = allWorkspaceInstances.find((workspaceObj) => workspaceObj.id === workspaceId); - return metadataForWorkspace?.monitor?.id === monitorId; }); if (isMonitorSpecific) { diff --git a/src/components/menus/power/verification.tsx b/src/components/menus/power/verification.tsx index 30d717b..0a96a59 100644 --- a/src/components/menus/power/verification.tsx +++ b/src/components/menus/power/verification.tsx @@ -4,8 +4,8 @@ import { App, Gtk } from 'astal/gtk3'; import { bind } from 'astal'; export default (): JSX.Element => ( - - + +