summaryrefslogtreecommitdiff
path: root/src/helpers/Monitor.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2025-10-26 13:52:09 +0000
committerVaxry <vaxry@vaxry.net>2025-10-26 13:52:09 +0000
commit05aa4e1c54da31d95663f9b4bc757e2a6ca65538 (patch)
treebfc9a4f456b2057aea7d4417f5acabb1cbc2569d /src/helpers/Monitor.cpp
parent748d2f656ee4952090eb4ce8702ee05c82d228cb (diff)
compositor: check for monitor layout issues post rule apply
fixes #12108
Diffstat (limited to 'src/helpers/Monitor.cpp')
-rw-r--r--src/helpers/Monitor.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp
index 1ec035fd..ac9c065f 100644
--- a/src/helpers/Monitor.cpp
+++ b/src/helpers/Monitor.cpp
@@ -344,7 +344,7 @@ void CMonitor::onDisconnect(bool destroy) {
g_pEventManager->postEvent(SHyprIPCEvent{"monitorremoved", m_name});
g_pEventManager->postEvent(SHyprIPCEvent{"monitorremovedv2", std::format("{},{},{}", m_id, m_name, m_shortDescription)});
EMIT_HOOK_EVENT("monitorRemoved", m_self.lock());
- g_pCompositor->arrangeMonitors();
+ g_pCompositor->scheduleMonitorStateRecheck();
}};
m_frameScheduler.reset();
@@ -955,7 +955,7 @@ bool CMonitor::applyMonitorRule(SMonitorRule* pMonitorRule, bool force) {
if (WAS10B != m_enabled10bit || OLDRES != m_pixelSize)
g_pHyprOpenGL->destroyMonitorResources(m_self);
- g_pCompositor->arrangeMonitors();
+ g_pCompositor->scheduleMonitorStateRecheck();
m_damage.setSize(m_transformedSize);
@@ -1181,7 +1181,7 @@ void CMonitor::setMirror(const std::string& mirrorOf) {
// remove from mvmonitors
std::erase_if(g_pCompositor->m_monitors, [&](const auto& other) { return other == m_self; });
- g_pCompositor->arrangeMonitors();
+ g_pCompositor->scheduleMonitorStateRecheck();
g_pCompositor->setActiveMonitor(g_pCompositor->m_monitors.front());