From a69fd21a1ac90c24cee659595d62329f8638d632 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Mon, 31 Oct 2022 12:26:07 +0000 Subject: Add an idleinhibit windowrule --- src/managers/input/IdleInhibitor.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/managers/input/IdleInhibitor.cpp') diff --git a/src/managers/input/IdleInhibitor.cpp b/src/managers/input/IdleInhibitor.cpp index 3efb40c6..8c0a3267 100644 --- a/src/managers/input/IdleInhibitor.cpp +++ b/src/managers/input/IdleInhibitor.cpp @@ -49,6 +49,27 @@ void CInputManager::recheckIdleInhibitorStatus() { } } + // check manual user-set inhibitors + for (auto& w : g_pCompositor->m_vWindows) { + if (w->m_eIdleInhibitMode == IDLEINHIBIT_NONE) + continue; + + if (w->m_eIdleInhibitMode == IDLEINHIBIT_ALWAYS) { + wlr_idle_set_enabled(g_pCompositor->m_sWLRIdle, g_pCompositor->m_sSeat.seat, false); + return; + } + + if (w->m_eIdleInhibitMode == IDLEINHIBIT_FOCUS && g_pCompositor->isWindowActive(w.get())) { + wlr_idle_set_enabled(g_pCompositor->m_sWLRIdle, g_pCompositor->m_sSeat.seat, false); + return; + } + + if (w->m_eIdleInhibitMode == IDLEINHIBIT_FULLSCREEN && w->m_bIsFullscreen && g_pCompositor->isWorkspaceVisible(w->m_iWorkspaceID)) { + wlr_idle_set_enabled(g_pCompositor->m_sWLRIdle, g_pCompositor->m_sSeat.seat, false); + return; + } + } + wlr_idle_set_enabled(g_pCompositor->m_sWLRIdle, g_pCompositor->m_sSeat.seat, true); return; } \ No newline at end of file -- cgit v1.2.3