fix dynamic monitor disables corrupting pmosthz

This commit is contained in:
vaxerski
2022-12-22 12:15:00 +00:00
parent 8c094b0eec
commit 6749c8abd7
4 changed files with 20 additions and 21 deletions

View File

@@ -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; });
}