summaryrefslogtreecommitdiff
path: root/src/events/Monitors.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/events/Monitors.cpp
parent8c094b0eec7724c75dd4a1cd7d29b1ff3fe32d18 (diff)
fix dynamic monitor disables corrupting pmosthz
Diffstat (limited to 'src/events/Monitors.cpp')
-rw-r--r--src/events/Monitors.cpp24
1 files changed, 4 insertions, 20 deletions
diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp
index db8a4553..09b2dc4b 100644
--- a/src/events/Monitors.cpp
+++ b/src/events/Monitors.cpp
@@ -15,9 +15,7 @@
// //
// --------------------------------------------------------- //
-CMonitor* pMostHzMonitor = nullptr;
-
-void Events::listener_change(wl_listener* listener, void* data) {
+void Events::listener_change(wl_listener* listener, void* data) {
// layout got changed, let's update monitors.
const auto CONFIG = wlr_output_configuration_v1_create();
@@ -80,8 +78,8 @@ void Events::listener_newOutput(wl_listener* listener, void* data) {
PNEWMONITOR->onConnect(false);
- if ((!pMostHzMonitor || PNEWMONITOR->refreshRate > pMostHzMonitor->refreshRate) && PNEWMONITOR->m_bEnabled)
- pMostHzMonitor = PNEWMONITOR;
+ if ((!g_pHyprRenderer->m_pMostHzMonitor || PNEWMONITOR->refreshRate > g_pHyprRenderer->m_pMostHzMonitor->refreshRate) && PNEWMONITOR->m_bEnabled)
+ g_pHyprRenderer->m_pMostHzMonitor = PNEWMONITOR;
// ready to process cuz we have a monitor
if (PNEWMONITOR->m_bEnabled) {
@@ -140,7 +138,7 @@ void Events::listener_monitorFrame(void* owner, void* data) {
}
// checks //
- if (PMONITOR->ID == pMostHzMonitor->ID ||
+ if (PMONITOR->ID == g_pHyprRenderer->m_pMostHzMonitor->ID ||
!*PNOVFR) { // unfortunately with VFR we don't have the guarantee mostHz is going to be updated all the time, so we have to ignore that
g_pCompositor->sanityCheckWorkspaces();
g_pAnimationManager->tick();
@@ -340,20 +338,6 @@ void Events::listener_monitorDestroy(void* owner, void* data) {
Debug::log(LOG, "Removing monitor %s from realMonitors", pMonitor->output->name);
std::erase_if(g_pCompositor->m_vRealMonitors, [&](std::shared_ptr<CMonitor>& el) { return el.get() == pMonitor; });
-
- if (pMostHzMonitor == pMonitor) {
- int mostHz = 0;
- CMonitor* pMonitorMostHz = nullptr;
-
- for (auto& m : g_pCompositor->m_vMonitors) {
- if (m->refreshRate > mostHz) {
- pMonitorMostHz = m.get();
- mostHz = m->refreshRate;
- }
- }
-
- pMostHzMonitor = pMonitorMostHz;
- }
}
}