From f58c80fd3942034d58934ec4e4d93bfcfa3c786e Mon Sep 17 00:00:00 2001 From: EvilLary Date: Wed, 10 Dec 2025 01:30:35 +0300 Subject: [PATCH] monitor: remove monitor from list on disconnect before unsafestate (#12544) --- src/helpers/Monitor.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp index e80747be3..fa76a982d 100644 --- a/src/helpers/Monitor.cpp +++ b/src/helpers/Monitor.cpp @@ -411,6 +411,7 @@ void CMonitor::onDisconnect(bool destroy) { m_layerSurfaceLayers[i].clear(); } + std::erase_if(g_pCompositor->m_monitors, [&](PHLMONITOR& el) { return el.get() == this; }); Debug::log(LOG, "Removed monitor {}!", m_name); if (!BACKUPMON) { @@ -462,7 +463,7 @@ void CMonitor::onDisconnect(bool destroy) { PHLMONITOR pMonitorMostHz = nullptr; for (auto const& m : g_pCompositor->m_monitors) { - if (m->m_refreshRate > mostHz && m != m_self) { + if (m->m_refreshRate > mostHz) { pMonitorMostHz = m; mostHz = m->m_refreshRate; } @@ -470,7 +471,6 @@ 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) {