From 11943f761e8f2d5dc98fb3b6582530aea57e5902 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Sat, 1 Mar 2025 15:56:44 +0000 Subject: [PATCH] monitor: avoid crash on expired special workspace monitor owner fixes #9477 --- src/helpers/Monitor.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp index 24db3ea4b..c015b47b9 100644 --- a/src/helpers/Monitor.cpp +++ b/src/helpers/Monitor.cpp @@ -1124,12 +1124,12 @@ void CMonitor::setSpecialWorkspace(const PHLWORKSPACE& pWorkspace) { bool animate = true; //close if open elsewhere const auto PMONITORWORKSPACEOWNER = pWorkspace->m_pMonitor.lock(); - if (PMONITORWORKSPACEOWNER->activeSpecialWorkspace == pWorkspace) { - PMONITORWORKSPACEOWNER->activeSpecialWorkspace.reset(); - g_pLayoutManager->getCurrentLayout()->recalculateMonitor(PMONITORWORKSPACEOWNER->ID); - g_pEventManager->postEvent(SHyprIPCEvent{"activespecial", "," + PMONITORWORKSPACEOWNER->szName}); + if (const auto PMWSOWNER = pWorkspace->m_pMonitor.lock(); PMWSOWNER && PMWSOWNER->activeSpecialWorkspace == pWorkspace) { + PMWSOWNER->activeSpecialWorkspace.reset(); + g_pLayoutManager->getCurrentLayout()->recalculateMonitor(PMWSOWNER->ID); + g_pEventManager->postEvent(SHyprIPCEvent{"activespecial", "," + PMWSOWNER->szName}); - const auto PACTIVEWORKSPACE = PMONITORWORKSPACEOWNER->activeWorkspace; + const auto PACTIVEWORKSPACE = PMWSOWNER->activeWorkspace; g_pCompositor->updateFullscreenFadeOnWorkspace(PACTIVEWORKSPACE); animate = false;