diff --git a/src/cursor.cpp b/src/cursor.cpp index 471c1d1..741a822 100644 --- a/src/cursor.cpp +++ b/src/cursor.cpp @@ -33,7 +33,9 @@ void tickRaw(SP self, void* data) { if (isEnabled()) g_pDynamicCursors->onTick(g_pPointerManager.get()); - const int TIMEOUT = g_pHyprRenderer->m_pMostHzMonitor ? 1000.0 / g_pHyprRenderer->m_pMostHzMonitor->refreshRate : 16; + const int TIMEOUT = g_pHyprRenderer->m_pMostHzMonitor && g_pHyprRenderer->m_pMostHzMonitor->refreshRate > 0 + ? 1000.0 / g_pHyprRenderer->m_pMostHzMonitor->refreshRate + : 16; self->updateTimeout(std::chrono::milliseconds(TIMEOUT)); } diff --git a/src/mode/ModeStretch.cpp b/src/mode/ModeStretch.cpp index 0b198a8..04396d9 100644 --- a/src/mode/ModeStretch.cpp +++ b/src/mode/ModeStretch.cpp @@ -15,7 +15,7 @@ SModeResult CModeStretch::update(Vector2D pos) { auto limit = g_pShapeRuleHandler->getIntOr(CONFIG_STRETCH_LIMIT, **PLIMIT); // create samples array - int max = g_pHyprRenderer->m_pMostHzMonitor->refreshRate / 10; // 100ms worth of history + int max = std::max(1, (int)(g_pHyprRenderer->m_pMostHzMonitor->refreshRate / 10)); // 100ms worth of history, avoiding divide by 0 samples.resize(max, pos); // capture current sample diff --git a/src/mode/ModeTilt.cpp b/src/mode/ModeTilt.cpp index 923872c..0ab9262 100644 --- a/src/mode/ModeTilt.cpp +++ b/src/mode/ModeTilt.cpp @@ -15,7 +15,7 @@ SModeResult CModeTilt::update(Vector2D pos) { auto limit = g_pShapeRuleHandler->getIntOr(CONFIG_TILT_LIMIT, **PLIMIT); // create samples array - int max = g_pHyprRenderer->m_pMostHzMonitor->refreshRate / 10; // 100ms worth of history + int max = std::max(1, (int)(g_pHyprRenderer->m_pMostHzMonitor->refreshRate / 10)); // 100ms worth of history, avoiding divide by 0 samples.resize(max, pos); // capture current sample diff --git a/src/other/Shake.cpp b/src/other/Shake.cpp index 01a9986..26c6cc7 100644 --- a/src/other/Shake.cpp +++ b/src/other/Shake.cpp @@ -44,7 +44,7 @@ double CShake::update(Vector2D pos) { static auto* const* PIPC = (Hyprlang::INT* const*) getConfig(CONFIG_SHAKE_IPC); - int max = g_pHyprRenderer->m_pMostHzMonitor->refreshRate; // 1s worth of history + int max = std::max(1, (int)(g_pHyprRenderer->m_pMostHzMonitor->refreshRate)); // 1s worth of history, avoiding divide by 0 samples.resize(max); samples_distance.resize(max);