From 6749c8abd787f054b919e43bae562d8899c3287a Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Thu, 22 Dec 2022 12:15:00 +0000 Subject: fix dynamic monitor disables corrupting pmosthz --- src/helpers/Monitor.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/helpers/Monitor.cpp') diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp index bda32d84..74b18859 100644 --- a/src/helpers/Monitor.cpp +++ b/src/helpers/Monitor.cpp @@ -239,6 +239,20 @@ void CMonitor::onDisconnect() { if (g_pCompositor->m_pLastMonitor == this) g_pCompositor->setActiveMonitor(BACKUPMON); + if (g_pHyprRenderer->m_pMostHzMonitor == this) { + int mostHz = 0; + CMonitor* pMonitorMostHz = nullptr; + + for (auto& m : g_pCompositor->m_vMonitors) { + if (m->refreshRate > mostHz && m.get() != this) { + pMonitorMostHz = m.get(); + mostHz = m->refreshRate; + } + } + + g_pHyprRenderer->m_pMostHzMonitor = pMonitorMostHz; + } + std::erase_if(g_pCompositor->m_vMonitors, [&](std::shared_ptr& el) { return el.get() == this; }); } -- cgit v1.2.3