From 683a4b07c514fa3c13cdf09e475283a69fcc7653 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Sun, 18 Feb 2024 00:13:38 +0000 Subject: [PATCH] rules: ignore static tile/float rules in dynamic gets fixes #4736 --- src/config/ConfigManager.cpp | 5 ++++- src/config/ConfigManager.hpp | 2 +- src/events/Windows.cpp | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index f7154e54..f1326c2a 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -2002,7 +2002,7 @@ SWorkspaceRule CConfigManager::getWorkspaceRuleFor(CWorkspace* pWorkspace) { return *IT; } -std::vector CConfigManager::getMatchingRules(CWindow* pWindow) { +std::vector CConfigManager::getMatchingRules(CWindow* pWindow, bool dynamic) { if (!g_pCompositor->windowValidMapped(pWindow)) return std::vector(); @@ -2128,6 +2128,9 @@ std::vector CConfigManager::getMatchingRules(CWindow* pWindow) { returns.push_back(rule); + if (dynamic) + continue; + if (rule.szRule == "float") hasFloating = true; else if (rule.szRule == "fullscreen") diff --git a/src/config/ConfigManager.hpp b/src/config/ConfigManager.hpp index d5957cd5..ecd781b7 100644 --- a/src/config/ConfigManager.hpp +++ b/src/config/ConfigManager.hpp @@ -120,7 +120,7 @@ class CConfigManager { std::string getBoundMonitorStringForWS(const std::string&); const std::deque& getAllWorkspaceRules(); - std::vector getMatchingRules(CWindow*); + std::vector getMatchingRules(CWindow*, bool dynamic = true); std::vector getMatchingRules(SLayerSurface*); std::unordered_map m_mAdditionalReservedAreas; diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index df4b8ddb..36f82cd8 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -101,7 +101,7 @@ void Events::listener_mapWindow(void* owner, void* data) { } // window rules - const auto WINDOWRULES = g_pConfigManager->getMatchingRules(PWINDOW); + const auto WINDOWRULES = g_pConfigManager->getMatchingRules(PWINDOW, false); std::string requestedWorkspace = ""; bool workspaceSilent = false; bool requestsFullscreen = PWINDOW->m_bWantsInitialFullscreen ||