diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-12-22 12:15:00 +0000 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-12-22 12:15:07 +0000 |
| commit | 6749c8abd787f054b919e43bae562d8899c3287a (patch) | |
| tree | b18edfef943cf02ffaef633dded9037574efd9a3 /src/helpers/Monitor.cpp | |
| parent | 8c094b0eec7724c75dd4a1cd7d29b1ff3fe32d18 (diff) | |
fix dynamic monitor disables corrupting pmosthz
Diffstat (limited to 'src/helpers/Monitor.cpp')
| -rw-r--r-- | src/helpers/Monitor.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
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<CMonitor>& el) { return el.get() == this; }); } |
