From e123fd3e667177fa67624b9f5960653410c7bebb Mon Sep 17 00:00:00 2001 From: EvilLary Date: Tue, 3 Feb 2026 23:44:18 +0300 Subject: [PATCH] monitor: revert "remove disconnected monitor before unsafe state #12544" (#13154) --- src/helpers/Monitor.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp index ac828e56..ab581394 100644 --- a/src/helpers/Monitor.cpp +++ b/src/helpers/Monitor.cpp @@ -411,7 +411,6 @@ void CMonitor::onDisconnect(bool destroy) { m_layerSurfaceLayers[i].clear(); } - std::erase_if(g_pCompositor->m_monitors, [&](PHLMONITOR& el) { return el.get() == this; }); Log::logger->log(Log::DEBUG, "Removed monitor {}!", m_name); if (!BACKUPMON) { @@ -463,7 +462,7 @@ void CMonitor::onDisconnect(bool destroy) { PHLMONITOR pMonitorMostHz = nullptr; for (auto const& m : g_pCompositor->m_monitors) { - if (m->m_refreshRate > mostHz) { + if (m->m_refreshRate > mostHz && m != m_self) { pMonitorMostHz = m; mostHz = m->m_refreshRate; } @@ -471,6 +470,8 @@ void CMonitor::onDisconnect(bool destroy) { g_pHyprRenderer->m_mostHzMonitor = pMonitorMostHz; } + + std::erase_if(g_pCompositor->m_monitors, [&](PHLMONITOR& el) { return el.get() == this; }); } void CMonitor::applyCMType(NCMType::eCMType cmType, int cmSdrEotf) {