diff --git a/src/layout/DwindleLayout.cpp b/src/layout/DwindleLayout.cpp index 46777847..560075d2 100644 --- a/src/layout/DwindleLayout.cpp +++ b/src/layout/DwindleLayout.cpp @@ -97,7 +97,18 @@ void CHyprDwindleLayout::applyNodeDataToWindow(SDwindleNodeData* pNode) { if (pNode->isNode) return; - const auto PMONITOR = g_pCompositor->getMonitorFromID(g_pCompositor->getWorkspaceByID(pNode->workspaceID)->m_iMonitorID); + SMonitor* PMONITOR = nullptr; + + if (pNode->workspaceID != SPECIAL_WORKSPACE_ID) { + for (auto& m : g_pCompositor->m_vMonitors) { + if (m->specialWorkspaceOpen) { + PMONITOR = m.get(); + break; + } + } + } else { + PMONITOR = g_pCompositor->getMonitorFromID(g_pCompositor->getWorkspaceByID(pNode->workspaceID)->m_iMonitorID); + } if (!PMONITOR) { Debug::log(ERR, "Orphaned Node %x (workspace ID: %i)!!", pNode, pNode->workspaceID);