From 5380cbcddac97ab037317532bd9efd1f56ba7bf9 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Thu, 27 Mar 2025 13:59:45 +0000 Subject: [PATCH] workspaces: minor fixes to persistence fixes #9741 --- src/Compositor.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/Compositor.cpp b/src/Compositor.cpp index a4acbecc..9aff1bb5 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -2627,7 +2627,13 @@ PHLWORKSPACE CCompositor::createNewWorkspace(const WORKSPACEID& id, const MONITO const bool SPECIAL = id >= SPECIAL_WORKSPACE_START && id <= -2; - const auto PWORKSPACE = m_vWorkspaces.emplace_back(CWorkspace::create(id, getMonitorFromID(monID), NAME, SPECIAL, isEmpty)); + const auto PMONITOR = getMonitorFromID(monID); + if (!PMONITOR) { + Debug::log(ERR, "BUG THIS: No pMonitor for new workspace in createNewWorkspace"); + return nullptr; + } + + const auto PWORKSPACE = m_vWorkspaces.emplace_back(CWorkspace::create(id, PMONITOR, NAME, SPECIAL, isEmpty)); PWORKSPACE->m_fAlpha->setValueAndWarp(0); @@ -3061,6 +3067,8 @@ bool CCompositor::shouldChangePreferredImageDescription() { } void CCompositor::ensurePersistentWorkspacesPresent(const std::vector& rules, PHLWORKSPACE pWorkspace) { + if (!m_pLastMonitor) + return; for (const auto& rule : rules) { if (!rule.isPersistent) @@ -3076,6 +3084,9 @@ void CCompositor::ensurePersistentWorkspacesPresent(const std::vectorID : m_pLastMonitor->ID, wsname, false); } if (PWORKSPACE)