diff options
| author | ItsOhen <TNordfeldt@gmail.com> | 2026-03-17 17:43:53 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-17 12:43:53 -0400 |
| commit | 9f599e316504943eec5d2fa854f7c99c575616b7 (patch) | |
| tree | 58041f7feb19ca8e022ae3639524b7c51ef05427 /src/desktop | |
| parent | 35ef8dc1f7abb3e7139de5f8831ca2b0d81da78c (diff) | |
window/rules: add scrolling_width (#13754)
Diffstat (limited to 'src/desktop')
5 files changed, 13 insertions, 4 deletions
diff --git a/src/desktop/rule/windowRule/WindowRuleApplicator.cpp b/src/desktop/rule/windowRule/WindowRuleApplicator.cpp index dd0e7fb8..bb2499e7 100644 --- a/src/desktop/rule/windowRule/WindowRuleApplicator.cpp +++ b/src/desktop/rule/windowRule/WindowRuleApplicator.cpp @@ -541,6 +541,12 @@ CWindowRuleApplicator::SRuleResult CWindowRuleApplicator::applyStaticRule(const } catch (...) { Log::logger->log(Log::ERR, "CWindowRuleApplicator::applyStaticRule: invalid no close for {}", effect); } break; } + case WINDOW_RULE_EFFECT_SCROLLING_WIDTH: { + try { + static_.scrollingWidth = std::stof(effect); + } catch (...) { Log::logger->log(Log::ERR, "CWindowRuleApplicator::applyStaticRule: invalid scrolling width {}", effect); } + break; + } } } diff --git a/src/desktop/rule/windowRule/WindowRuleApplicator.hpp b/src/desktop/rule/windowRule/WindowRuleApplicator.hpp index 8bcf7008..e7cf15f9 100644 --- a/src/desktop/rule/windowRule/WindowRuleApplicator.hpp +++ b/src/desktop/rule/windowRule/WindowRuleApplicator.hpp @@ -54,6 +54,7 @@ namespace Desktop::Rule { std::optional<int> noCloseFor; std::string size, position; + std::optional<float> scrollingWidth; std::vector<std::string> suppressEvent; } static_; diff --git a/src/desktop/rule/windowRule/WindowRuleEffectContainer.cpp b/src/desktop/rule/windowRule/WindowRuleEffectContainer.cpp index 660bf871..66867247 100644 --- a/src/desktop/rule/windowRule/WindowRuleEffectContainer.cpp +++ b/src/desktop/rule/windowRule/WindowRuleEffectContainer.cpp @@ -28,6 +28,7 @@ static const std::vector<std::string> EFFECT_STRINGS = { "suppress_event", // "content", // "no_close_for", // + "scrolling_width", // "rounding", // "rounding_power", // "persistent_size", // @@ -69,7 +70,7 @@ static const std::vector<std::string> EFFECT_STRINGS = { // This is here so that if we change the rules, we get reminded to update // the strings. -static_assert(WINDOW_RULE_EFFECT_LAST_STATIC == 54); +static_assert(WINDOW_RULE_EFFECT_LAST_STATIC == 55); CWindowRuleEffectContainer::CWindowRuleEffectContainer() : IEffectContainer<eWindowRuleEffect>(std::vector<std::string>{EFFECT_STRINGS}) { ; diff --git a/src/desktop/rule/windowRule/WindowRuleEffectContainer.hpp b/src/desktop/rule/windowRule/WindowRuleEffectContainer.hpp index 0827d462..af861109 100644 --- a/src/desktop/rule/windowRule/WindowRuleEffectContainer.hpp +++ b/src/desktop/rule/windowRule/WindowRuleEffectContainer.hpp @@ -27,6 +27,7 @@ namespace Desktop::Rule { WINDOW_RULE_EFFECT_SUPPRESSEVENT, WINDOW_RULE_EFFECT_CONTENT, WINDOW_RULE_EFFECT_NOCLOSEFOR, + WINDOW_RULE_EFFECT_SCROLLING_WIDTH, // dynamic WINDOW_RULE_EFFECT_ROUNDING, @@ -76,4 +77,4 @@ namespace Desktop::Rule { }; SP<CWindowRuleEffectContainer> windowEffects(); -};
\ No newline at end of file +}; diff --git a/src/desktop/view/Window.cpp b/src/desktop/view/Window.cpp index 00d32a47..2f87cc0f 100644 --- a/src/desktop/view/Window.cpp +++ b/src/desktop/view/Window.cpp @@ -1770,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)), }; } |
