diff options
| author | ItsOhen <TNordfeldt@gmail.com> | 2026-03-15 20:32:05 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-15 14:32:05 -0500 |
| commit | 94bd4123c6e8fd3162e245b0d568c9d6dfd75780 (patch) | |
| tree | 764d69857d566a44939394960b05731c709ae973 /src/desktop/view/Window.cpp | |
| parent | 3fd2a95475d9a954305eeede59fe2b345a4d8098 (diff) | |
desktop/rules: fix static rules and content type. (#13725)
Hopefully for the last time in a while. Also a lot easier to add in new
static types with the recheck done in window map instead of the rule.
Diffstat (limited to 'src/desktop/view/Window.cpp')
| -rw-r--r-- | src/desktop/view/Window.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/desktop/view/Window.cpp b/src/desktop/view/Window.cpp index 4570a901..00d32a47 100644 --- a/src/desktop/view/Window.cpp +++ b/src/desktop/view/Window.cpp @@ -1719,8 +1719,7 @@ void CWindow::mapWindow() { requestedClientFSMode = FSMODE_FULLSCREEN; MONITORID requestedFSMonitor = m_wantsInitialFullscreenMonitor; - m_ruleApplicator->readStaticRules(); - { + auto setStaticProps = [&]() { if (!m_ruleApplicator->static_.monitor.empty()) { const auto& MONITORSTR = m_ruleApplicator->static_.monitor; if (MONITORSTR == "unset") @@ -1771,8 +1770,8 @@ void CWindow::mapWindow() { if (m_ruleApplicator->static_.fullscreenStateClient || m_ruleApplicator->static_.fullscreenStateInternal) { requestedFSState = Desktop::View::SFullscreenState{ - .internal = sc<eFullscreenMode>(m_ruleApplicator->static_.fullscreenStateInternal.value_or(0)), - .client = sc<eFullscreenMode>(m_ruleApplicator->static_.fullscreenStateClient.value_or(0)), + .internal = sc<eFullscreenMode>(m_ruleApplicator->static_.fullscreenStateInternal.value_or(0)), + .client = sc<eFullscreenMode>(m_ruleApplicator->static_.fullscreenStateClient.value_or(0)), }; } @@ -1846,6 +1845,13 @@ void CWindow::mapWindow() { if (m_ruleApplicator->static_.noCloseFor) m_closeableSince = Time::steadyNow() + std::chrono::milliseconds(m_ruleApplicator->static_.noCloseFor.value()); + }; + + const bool recheck = m_ruleApplicator->readStaticRules(); + setStaticProps(); + if (recheck) { + m_ruleApplicator->recheckStaticRules(); + setStaticProps(); } // make it uncloseable if it's a Hyprland dialog |
