From 42447a50d6840c5e28bd58db1225bae2fd7d5ed0 Mon Sep 17 00:00:00 2001 From: Vaxry <43317083+vaxerski@users.noreply.github.com> Date: Sat, 27 Dec 2025 12:43:45 +0100 Subject: rules/windowRuleApplicator: fix min/max size effects (#12491) fixes #12412 --- src/desktop/rule/windowRule/WindowRuleApplicator.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'src/desktop/rule/windowRule/WindowRuleApplicator.cpp') diff --git a/src/desktop/rule/windowRule/WindowRuleApplicator.cpp b/src/desktop/rule/windowRule/WindowRuleApplicator.cpp index ab1c2a14..0b6cba0f 100644 --- a/src/desktop/rule/windowRule/WindowRuleApplicator.cpp +++ b/src/desktop/rule/windowRule/WindowRuleApplicator.cpp @@ -265,9 +265,6 @@ CWindowRuleApplicator::SRuleResult CWindowRuleApplicator::applyDynamicRule(const if (!m_window) break; - if (!m_window->m_isFloating && !sc(*PCLAMP_TILED)) - break; - const auto VEC = configStringToVector2D(effect); if (VEC.x < 1 || VEC.y < 1) { Log::logger->log(Log::ERR, "Invalid size for maxsize"); @@ -275,8 +272,9 @@ CWindowRuleApplicator::SRuleResult CWindowRuleApplicator::applyDynamicRule(const } m_maxSize.first = Types::COverridableVar(VEC, Types::PRIORITY_WINDOW_RULE); - m_window->clampWindowSize(std::nullopt, m_maxSize.first.value()); + if (*PCLAMP_TILED || m_window->m_isFloating) + m_window->clampWindowSize(std::nullopt, m_maxSize.first.value()); } catch (std::exception& e) { Log::logger->log(Log::ERR, "maxsize rule \"{}\" failed with: {}", effect, e.what()); } m_maxSize.second = rule->getPropertiesMask(); break; @@ -288,9 +286,6 @@ CWindowRuleApplicator::SRuleResult CWindowRuleApplicator::applyDynamicRule(const if (!m_window) break; - if (!m_window->m_isFloating && !sc(*PCLAMP_TILED)) - break; - const auto VEC = configStringToVector2D(effect); if (VEC.x < 1 || VEC.y < 1) { Log::logger->log(Log::ERR, "Invalid size for maxsize"); @@ -298,7 +293,8 @@ CWindowRuleApplicator::SRuleResult CWindowRuleApplicator::applyDynamicRule(const } m_minSize.first = Types::COverridableVar(VEC, Types::PRIORITY_WINDOW_RULE); - m_window->clampWindowSize(std::nullopt, m_minSize.first.value()); + if (*PCLAMP_TILED || m_window->m_isFloating) + m_window->clampWindowSize(m_minSize.first.value(), std::nullopt); } catch (std::exception& e) { Log::logger->log(Log::ERR, "minsize rule \"{}\" failed with: {}", effect, e.what()); } m_minSize.second = rule->getPropertiesMask(); break; -- cgit v1.2.3