summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-06-30 23:50:57 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-06-30 23:50:57 +0200
commit3970b43ea2de4e397ac548e6e148749bbe202ce2 (patch)
tree7114d170cdbfcee20e83ae8653c7b4a7fd4382db /src/render/Renderer.cpp
parent92890d492a2dea43837591de79ffec828b50d6e2 (diff)
fix disabling monitor while hyprland is running
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index 4eaf988d..97c2de73 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -647,6 +647,15 @@ void CHyprRenderer::applyMonitorRule(SMonitor* pMonitor, SMonitorRule* pMonitorR
Debug::log(LOG, "Applying monitor rule for %s", pMonitor->szName.c_str());
+ // if it's disabled, disable and ignore
+ if (pMonitorRule->disabled) {
+ wlr_output_enable(pMonitor->output, 0);
+ wlr_output_commit(pMonitor->output);
+
+ Events::listener_monitorDestroy(nullptr, pMonitor->output);
+ return;
+ }
+
// Check if the rule isn't already applied
if (!force && DELTALESSTHAN(pMonitor->vecPixelSize.x, pMonitorRule->resolution.x, 1) && DELTALESSTHAN(pMonitor->vecPixelSize.y, pMonitorRule->resolution.y, 1) && DELTALESSTHAN(pMonitor->refreshRate, pMonitorRule->refreshRate, 1) && pMonitor->scale == pMonitorRule->scale && DELTALESSTHAN(pMonitor->vecPosition.x, pMonitorRule->offset.x, 1) && DELTALESSTHAN(pMonitor->vecPosition.y, pMonitorRule->offset.y, 1) && pMonitor->transform == pMonitorRule->transform) {
Debug::log(LOG, "Not applying a new rule to %s because it's already applied!", pMonitor->szName.c_str());