From 05aa4e1c54da31d95663f9b4bc757e2a6ca65538 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Sun, 26 Oct 2025 13:52:09 +0000 Subject: compositor: check for monitor layout issues post rule apply fixes #12108 --- src/helpers/Monitor.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/helpers/Monitor.cpp') 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()); -- cgit v1.2.3