summaryrefslogtreecommitdiff
path: root/src/helpers/Monitor.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-12-22 12:15:00 +0000
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-12-22 12:15:07 +0000
commit6749c8abd787f054b919e43bae562d8899c3287a (patch)
treeb18edfef943cf02ffaef633dded9037574efd9a3 /src/helpers/Monitor.cpp
parent8c094b0eec7724c75dd4a1cd7d29b1ff3fe32d18 (diff)
fix dynamic monitor disables corrupting pmosthz
Diffstat (limited to 'src/helpers/Monitor.cpp')
-rw-r--r--src/helpers/Monitor.cpp14
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; });
}